new c_src
[nit.git] / c_src / compiling_methods._sep.c
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];
 }