c_src: regenerate with soft nullable handling
[nit.git] / c_src / compiling_methods._sep.c
index 7084396..be03d78 100644 (file)
 /* This C file is generated by NIT to compile module compiling_methods. */
 #include "compiling_methods._sep.h"
-void compiling_methods___CompilerVisitor___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 84, LOCATE_compiling_methods___CompilerVisitor___init};
-  val_t variable[3];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CompilerVisitor].i]) return;
-  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;
-  return;
-}
 void compiling_methods___CompilerVisitor___compile_stmt(val_t  self, val_t  param0) {
   struct trace_t trace = {NULL, NULL, 24, LOCATE_compiling_methods___CompilerVisitor___compile_stmt};
   val_t variable[5];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  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] = CALL_compiling_methods___CompilerVisitor___cfc(variable[4])(variable[4]) /*CompilerVisitor::cfc*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[3])) { /*if*/
+    goto return_label0;
+  }
+  CALL_compiling_methods___PExpr___prepare_compile_stmt( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PExpr::prepare_compile_stmt*/;
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
+  /* Register variable[4]: Result */
   variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/;
   variable[3] = variable[4];
-  variable[4] = variable[0];
-  CALL_compiling_methods___PExpr___compile_stmt( variable[1] /*n*/)( variable[1] /*n*/, variable[4]) /*PExpr::compile_stmt*/;
-  variable[4] = variable[0];
-  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[4])(variable[4]) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___PExpr___compile_stmt( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PExpr::compile_stmt*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
   ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/ =  variable[3] /*i*/;
-  return_label1: while(false);
+  return_label0: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___CompilerVisitor___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 33, LOCATE_compiling_methods___CompilerVisitor___compile_expr};
-  val_t variable[7];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 35, LOCATE_compiling_methods___CompilerVisitor___compile_expr};
+  static val_t once_value_2 = NIT_NULL; /* Once value for string variable[7]*/
+  val_t variable[8];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[4])(variable[4]) /*CompilerVisitor::cfc*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
+  /* Register variable[4]: Result */
   variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/;
   variable[3] = variable[4];
-  variable[5] = variable[0];
-  variable[5] = CALL_compiling_methods___PExpr___compile_expr( variable[1] /*n*/)( variable[1] /*n*/, variable[5]) /*PExpr::compile_expr*/;
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___PExpr___compile_expr( variable[1] /*n*/)( variable[1] /*n*/, variable[0]) /*PExpr::compile_expr*/;
   variable[4] = variable[5];
-  variable[5] = variable[0];
-  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc(variable[5])(variable[5]) /*CompilerVisitor::cfc*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
   ATTR_compiling_methods___CFunctionContext____variable_index(variable[5]) /*CFunctionContext::_variable_index*/ =  variable[3] /*i*/;
-  variable[5] = CALL_abstract_collection___Map_____bra( variable[4] /*s*/)( variable[4] /*s*/,  TAG_Int(0)) /*String::[]*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_abstract_collection___MapRead_____bra( variable[4] /*s*/)( variable[4] /*s*/,  TAG_Int(0)) /*AbstractString::[]*/;
+  /* Register variable[5]: Result */
   variable[5] = TAG_Bool((variable[5])==( TAG_Char(' ')));
+  /* Ensure var variable[5]: Left 'or' operand*/
+  if (!UNTAG_Bool(variable[5])) { /* or */
+    /* Register variable[5]: Result */
+    variable[5] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_compiling_methods___CFunctionContext___is_valid_variable(variable[5])(variable[5],  variable[4] /*s*/) /*CFunctionContext::is_valid_variable*/;
+  }
+  /* Register variable[5]: Result */
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[2] =  variable[4] /*s*/;
-    goto return_label2;
+    goto return_label1;
   }
-  variable[6] = variable[0];
-  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*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_2 != NIT_NULL) variable[7] = once_value_2;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Result"), TAG_Int(6)) /*new String*/;
+    once_value_2 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___CFunctionContext___get_var(variable[6])(variable[6], variable[7]) /*CFunctionContext::get_var*/;
   variable[5] = variable[6];
-  variable[6] = variable[0];
-  CALL_compiling_methods___CompilerVisitor___add_assignment(variable[6])(variable[6],  variable[5] /*v*/,  variable[4] /*s*/) /*CompilerVisitor::add_assignment*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment(variable[0])(variable[0],  variable[5] /*v*/,  variable[4] /*s*/) /*CompilerVisitor::add_assignment*/;
   variable[2] =  variable[5] /*v*/;
-  goto return_label2;
-  return_label2: while(false);
+  goto return_label1;
+  return_label1: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
-val_t compiling_methods___CompilerVisitor___ensure_var(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 47, LOCATE_compiling_methods___CompilerVisitor___ensure_var};
-  val_t variable[5];
-  void **closurevariable = NULL;
+val_t compiling_methods___CompilerVisitor___ensure_var(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 50, LOCATE_compiling_methods___CompilerVisitor___ensure_var};
+    static val_t once_value_4 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_5 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_6 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_7 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_8 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_9 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  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(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*String::==*/)));
-  if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[2] =  variable[1] /*s*/;
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CFunctionContext___is_valid_variable(variable[4])(variable[4],  variable[1] /*s*/) /*CFunctionContext::is_valid_variable*/;
+  if (UNTAG_Bool(variable[4])) { /*if*/
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_4 != NIT_NULL) variable[5] = once_value_4;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString("/* Ensure var "), TAG_Int(14)) /*new String*/;
+      once_value_4 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    variable[5] =  variable[1] /*s*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_5 != NIT_NULL) variable[5] = once_value_5;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
+      once_value_5 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    variable[5] =  variable[2] /*comment*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_6 != NIT_NULL) variable[5] = once_value_6;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+      once_value_6 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr(variable[0])(variable[0], variable[4]) /*CompilerVisitor::add_instr*/;
+    variable[3] =  variable[1] /*s*/;
     goto return_label3;
   }
-  variable[4] = variable[0];
-  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];
-  CALL_compiling_methods___CompilerVisitor___add_assignment(variable[4])(variable[4],  variable[3] /*v*/,  variable[1] /*s*/) /*CompilerVisitor::add_assignment*/;
-  variable[2] =  variable[3] /*v*/;
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CFunctionContext___get_var(variable[5])(variable[5],  NIT_NULL /*null*/) /*CFunctionContext::get_var*/;
+  variable[4] = variable[5];
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_7 != NIT_NULL) variable[6] = once_value_7;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_7 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[1] /*s*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_8 != NIT_NULL) variable[6] = once_value_8;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" /* Ensure var: "), TAG_Int(16)) /*new String*/;
+    once_value_8 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[2] /*comment*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_9 != NIT_NULL) variable[6] = once_value_9;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_9 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment(variable[0])(variable[0],  variable[4] /*v*/, variable[5]) /*CompilerVisitor::add_assignment*/;
+  variable[3] =  variable[4] /*v*/;
   goto return_label3;
   return_label3: while(false);
   tracehead = trace.prev;
-  return variable[2];
+  return variable[3];
 }
 void compiling_methods___CompilerVisitor___add_assignment(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 58, LOCATE_compiling_methods___CompilerVisitor___add_assignment};
-  val_t variable[14];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 62, LOCATE_compiling_methods___CompilerVisitor___add_assignment};
+    static val_t once_value_11 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_12 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_13 = NIT_NULL; /* Once value for string variable[5]*/
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
   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_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];
-    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-    variable[8] =  variable[1] /*v*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
-    variable[11] =  variable[2] /*s*/;
-    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];
-    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*/;
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_11 != NIT_NULL) variable[5] = once_value_11;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_11 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    variable[5] =  variable[1] /*v*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_12 != NIT_NULL) variable[5] = once_value_12;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString(" = "), TAG_Int(3)) /*new String*/;
+      once_value_12 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    variable[5] =  variable[2] /*s*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_13 != NIT_NULL) variable[5] = once_value_13;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_13 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr(variable[0])(variable[0], variable[4]) /*CompilerVisitor::add_instr*/;
   }
-  return_label4: while(false);
+  return_label10: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___CompilerVisitor___cfc(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 66, LOCATE_compiling_methods___CompilerVisitor___cfc};
+  struct trace_t trace = {NULL, NULL, 70, LOCATE_compiling_methods___CompilerVisitor___cfc};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___CompilerVisitor____cfc( self) /*CompilerVisitor::_cfc*/;
 }
 void compiling_methods___CompilerVisitor___cfc__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 66, LOCATE_compiling_methods___CompilerVisitor___cfc__eq};
+  struct trace_t trace = {NULL, NULL, 70, LOCATE_compiling_methods___CompilerVisitor___cfc__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___CompilerVisitor____cfc( self) /*CompilerVisitor::_cfc*/ =  param0;
@@ -154,18 +280,18 @@ void compiling_methods___CompilerVisitor___cfc__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_methods___CompilerVisitor___nmc(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 68, LOCATE_compiling_methods___CompilerVisitor___nmc};
+  struct trace_t trace = {NULL, NULL, 72, LOCATE_compiling_methods___CompilerVisitor___nmc};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___CompilerVisitor____nmc( self) /*CompilerVisitor::_nmc*/;
 }
 void compiling_methods___CompilerVisitor___nmc__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 68, LOCATE_compiling_methods___CompilerVisitor___nmc__eq};
+  struct trace_t trace = {NULL, NULL, 72, LOCATE_compiling_methods___CompilerVisitor___nmc__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___CompilerVisitor____nmc( self) /*CompilerVisitor::_nmc*/ =  param0;
@@ -173,18 +299,18 @@ void compiling_methods___CompilerVisitor___nmc__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_methods___CompilerVisitor___out_contexts(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 70, LOCATE_compiling_methods___CompilerVisitor___out_contexts};
+  struct trace_t trace = {NULL, NULL, 74, LOCATE_compiling_methods___CompilerVisitor___out_contexts};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___CompilerVisitor____out_contexts( self) /*CompilerVisitor::_out_contexts*/;
 }
 void compiling_methods___CompilerVisitor___out_contexts__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 70, LOCATE_compiling_methods___CompilerVisitor___out_contexts__eq};
+  struct trace_t trace = {NULL, NULL, 74, LOCATE_compiling_methods___CompilerVisitor___out_contexts__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___CompilerVisitor____out_contexts( self) /*CompilerVisitor::_out_contexts*/ =  param0;
@@ -192,619 +318,1173 @@ void compiling_methods___CompilerVisitor___out_contexts__eq(val_t  self, val_t
   return;
 }
 val_t compiling_methods___CompilerVisitor___printf_locate_error(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 73, LOCATE_compiling_methods___CompilerVisitor___printf_locate_error};
-  val_t variable[15];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 77, LOCATE_compiling_methods___CompilerVisitor___printf_locate_error};
+  static val_t once_value_15 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_16 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_17 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_18 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_19 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_20 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_21 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_22 = NIT_NULL; /* Once value for string variable[5]*/
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \""), TAG_Int(17)); /*new String*/
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Once String constant */
+  if (once_value_15 != NIT_NULL) variable[4] = once_value_15;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \""), TAG_Int(17)) /*new String*/;
+    once_value_15 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Register variable[4]: Result */
+  variable[4] = NEW_Buffer_string___Buffer___from(variable[4]) /*new Buffer*/;
   variable[3] = variable[4];
-  variable[4] = variable[0];
-  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc(variable[4])(variable[4]) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc(variable[0])(variable[0]) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
   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*/
-    CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*String::append*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_16 != NIT_NULL) variable[4] = once_value_16;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" in %s"), TAG_Int(6)) /*new String*/;
+      once_value_16 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*Buffer::append*/;
   }
-  variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" (%s:%d)\\n\", "), TAG_Int(13)); /*new String*/
-  CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*String::append*/;
-  variable[4] = variable[0];
-  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc(variable[4])(variable[4]) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_17 != NIT_NULL) variable[4] = once_value_17;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" (%s:%d)\\n\", "), TAG_Int(13)) /*new String*/;
+    once_value_17 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*Buffer::append*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc(variable[0])(variable[0]) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
   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_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];
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-    variable[7] = variable[0];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
-    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-    variable[10] = variable[9];
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_18 != NIT_NULL) variable[5] = once_value_18;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString("LOCATE_"), TAG_Int(7)) /*new String*/;
+      once_value_18 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_compiling_methods___CompilerVisitor___nmc(variable[0])(variable[0]) /*CompilerVisitor::nmc*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_compiling_methods___NitMethodContext___method(variable[5])(variable[5]) /*NitMethodContext::method*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_compiling_base___MMLocalProperty___cname(variable[5])(variable[5]) /*MMLocalProperty::cname*/;
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_19 != NIT_NULL) variable[5] = once_value_19;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+      once_value_19 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[4]: Result */
     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*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*Buffer::append*/;
   }
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-  variable[7] = variable[0];
-  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] = 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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[14]) /*AbstractArray::add*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_20 != NIT_NULL) variable[5] = once_value_20;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("LOCATE_"), TAG_Int(7)) /*new String*/;
+    once_value_20 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_base___CompilerVisitor___module(variable[0])(variable[0]) /*CompilerVisitor::module*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_abstractmetamodel___MMModule___name(variable[5])(variable[5]) /*MMModule::name*/;
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_21 != NIT_NULL) variable[5] = once_value_21;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_21 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_prod___PNode___line_number( variable[1] /*node*/)( variable[1] /*node*/) /*PNode::line_number*/;
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_22 != NIT_NULL) variable[5] = once_value_22;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)) /*new String*/;
+    once_value_22 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
   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);
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*Buffer::append*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_string___Object___to_s( variable[3] /*s*/)( variable[3] /*s*/) /*Buffer::to_s*/;
+  variable[2] = variable[4];
+  goto return_label14;
+  return_label14: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 89, LOCATE_compiling_methods___CompilerVisitor___invoke_super_init_calls_after};
-  val_t variable[17];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 88, LOCATE_compiling_methods___CompilerVisitor___invoke_super_init_calls_after};
+  val_t variable[16];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc(variable[4])(variable[4]) /*CompilerVisitor::nmc*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc(variable[0])(variable[0]) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___NitMethodContext___method(variable[4])(variable[4]) /*NitMethodContext::method*/;
+  /* Register variable[4]: Result */
   variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[4])(variable[4]) /*MMLocalProperty::node*/;
   variable[3] = variable[4];
+  /* Register variable[4]: Result */
   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);}
+  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, 91); nit_exit(1);}
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_abstract_collection___Collection___is_empty(variable[4])(variable[4]) /*AbstractArrayRead::is_empty*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
-    goto return_label6;
+    goto return_label23;
   }
+  /* Register variable[4]: Local variable */
   variable[4] =  TAG_Int(0);
+  /* Register variable[5]: Local variable */
   variable[5] =  TAG_Int(0);
+  /* Register variable[6]: Result */
   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*/
+      /* Register variable[6]: Result */
       variable[6] = CALL_typing___AConcreteInitPropdef___super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+      /* Register variable[7]: Local variable */
       variable[7] = variable[6];
+      /* Register variable[8]: Local variable */
       variable[8] =  variable[4] /*i*/;
+      /* Register variable[9]: Method return value and escape marker */
+      /* Register variable[10]: Result */
       variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-      variable[11] = variable[10];
-      if (UNTAG_Bool(variable[11])) { /* and */
-        variable[11] = variable[7];
-        variable[11] = ATTR_array___AbstractArray____length(variable[11]) /*AbstractArray::_length*/;
-        variable[11] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)<UNTAG_Int(variable[11]));
+      /* Ensure var variable[10]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[10])) { /* and */
+        /* Register variable[10]: Result */
+        variable[10] = ATTR_array___AbstractArrayRead____length(variable[7]) /*AbstractArrayRead::_length*/;
+        /* Register variable[10]: Result */
+        variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)<UNTAG_Int(variable[10]));
       }
-      variable[10] = variable[11];
-      if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[10] = variable[7];
-      variable[10] = ATTR_array___Array____items(variable[10]) /*Array::_items*/;
+      /* Register variable[10]: Result */
+      if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[10]: Result */
+      variable[10] = ATTR_array___Array____items(variable[7]) /*Array::_items*/;
+      /* Register variable[10]: Result */
       variable[10] = UNBOX_NativeArray(variable[10])[UNTAG_Int( variable[8] /*index*/)];
       variable[9] = variable[10];
-      goto return_label8;
-      return_label8: while(false);
+      goto return_label25;
+      return_label25: while(false);
+      /* Register variable[6]: Result */
       variable[6] = variable[9];
+      /* Register variable[6]: Result */
       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);
+      continue_24: while(0);
     }
-    break_7: while(0);
+    break_24: while(0);
     variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
     while (true) { /*while*/
+      /* Register variable[6]: Result */
       variable[6] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+      /* Register variable[7]: Local variable */
       variable[7] = variable[6];
+      /* Register variable[8]: Local variable */
       variable[8] =  variable[5] /*j*/;
+      /* Register variable[9]: Method return value and escape marker */
+      /* Register variable[10]: Result */
       variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-      variable[11] = variable[10];
-      if (UNTAG_Bool(variable[11])) { /* and */
-        variable[11] = variable[7];
-        variable[11] = ATTR_array___AbstractArray____length(variable[11]) /*AbstractArray::_length*/;
-        variable[11] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)<UNTAG_Int(variable[11]));
+      /* Ensure var variable[10]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[10])) { /* and */
+        /* Register variable[10]: Result */
+        variable[10] = ATTR_array___AbstractArrayRead____length(variable[7]) /*AbstractArrayRead::_length*/;
+        /* Register variable[10]: Result */
+        variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)<UNTAG_Int(variable[10]));
       }
-      variable[10] = variable[11];
-      if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[10] = variable[7];
-      variable[10] = ATTR_array___Array____items(variable[10]) /*Array::_items*/;
+      /* Register variable[10]: Result */
+      if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[10]: Result */
+      variable[10] = ATTR_array___Array____items(variable[7]) /*Array::_items*/;
+      /* Register variable[10]: Result */
       variable[10] = UNBOX_NativeArray(variable[10])[UNTAG_Int( variable[8] /*index*/)];
       variable[9] = variable[10];
-      goto return_label10;
-      return_label10: while(false);
+      goto return_label27;
+      return_label27: while(false);
+      /* Register variable[6]: Result */
       variable[6] = variable[9];
+      /* Register variable[6]: Result */
       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);
+      continue_26: while(0);
     }
-    break_9: while(0);
+    break_26: while(0);
     variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))) /*j*/;
   }
+  /* Register variable[6]: Local variable */
   variable[6] =  NIT_NULL /*null*/;
+  /* Register variable[7]: Result */
   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*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstract_collection___Collection___length(variable[7])(variable[7]) /*AbstractArrayRead::length*/;
+  /* Register variable[7]: Result */
   variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*j*/)<UNTAG_Int(variable[7]));
   if (UNTAG_Bool(variable[7])) { /*if*/
+    /* Register variable[7]: Result */
     variable[7] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+    /* Register variable[8]: Local variable */
     variable[8] = variable[7];
+    /* Register variable[9]: Local variable */
     variable[9] =  variable[5] /*j*/;
+    /* Register variable[10]: Method return value and escape marker */
+    /* Register variable[11]: Result */
     variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[12] = variable[11];
-    if (UNTAG_Bool(variable[12])) { /* and */
-      variable[12] = variable[8];
-      variable[12] = ATTR_array___AbstractArray____length(variable[12]) /*AbstractArray::_length*/;
-      variable[12] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)<UNTAG_Int(variable[12]));
+    /* Ensure var variable[11]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[11])) { /* and */
+      /* Register variable[11]: Result */
+      variable[11] = ATTR_array___AbstractArrayRead____length(variable[8]) /*AbstractArrayRead::_length*/;
+      /* Register variable[11]: Result */
+      variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)<UNTAG_Int(variable[11]));
     }
-    variable[11] = variable[12];
-    if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[11] = variable[8];
-    variable[11] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
+    /* Register variable[11]: Result */
+    if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[11]: Result */
+    variable[11] = ATTR_array___Array____items(variable[8]) /*Array::_items*/;
+    /* Register variable[11]: Result */
     variable[11] = UNBOX_NativeArray(variable[11])[UNTAG_Int( variable[9] /*index*/)];
     variable[10] = variable[11];
-    goto return_label11;
-    return_label11: while(false);
+    goto return_label28;
+    return_label28: while(false);
+    /* Register variable[7]: Result */
     variable[7] = variable[10];
     variable[6] = variable[7] /*stop_prop=*/;
   }
+  /* Register variable[7]: Local variable */
+  /* Register variable[8]: Result */
   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*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_abstract_collection___Collection___length(variable[8])(variable[8]) /*AbstractArrayRead::length*/;
   variable[7] = variable[8];
   while (true) { /*while*/
+    /* Register variable[8]: Result */
     variable[8] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)<UNTAG_Int( variable[7] /*l*/));
     if (!UNTAG_Bool(variable[8])) break; /* while*/
+    /* Register variable[8]: Local variable */
+    /* Register variable[9]: Result */
     variable[9] = CALL_typing___AConcreteInitPropdef___super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+    /* Register variable[10]: Local variable */
     variable[10] = variable[9];
+    /* Register variable[11]: Local variable */
     variable[11] =  variable[4] /*i*/;
+    /* Register variable[12]: Method return value and escape marker */
+    /* Register variable[13]: Result */
     variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[14] = variable[13];
-    if (UNTAG_Bool(variable[14])) { /* and */
-      variable[14] = variable[10];
-      variable[14] = ATTR_array___AbstractArray____length(variable[14]) /*AbstractArray::_length*/;
-      variable[14] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[14]));
+    /* Ensure var variable[13]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[13])) { /* and */
+      /* Register variable[13]: Result */
+      variable[13] = ATTR_array___AbstractArrayRead____length(variable[10]) /*AbstractArrayRead::_length*/;
+      /* Register variable[13]: Result */
+      variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[13]));
     }
-    variable[13] = variable[14];
-    if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[13] = variable[10];
-    variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
+    /* Register variable[13]: Result */
+    if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[13]: Result */
+    variable[13] = ATTR_array___Array____items(variable[10]) /*Array::_items*/;
+    /* Register variable[13]: Result */
     variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
     variable[12] = variable[13];
-    goto return_label13;
-    return_label13: while(false);
+    goto return_label30;
+    return_label30: while(false);
+    /* Register variable[9]: Result */
     variable[9] = variable[12];
     variable[8] = variable[9];
+    /* Register variable[9]: Result */
     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;
+      goto break_29;
     }
-    variable[10] = NEW_Array_array___Array___init(); /*new Array[String]*/
+    /* Register variable[9]: Local variable */
+    /* Register variable[10]: Result */
+    variable[10] = NEW_Array_array___Array___init() /*new Array[String]*/;
     variable[9] = variable[10];
+    /* Register variable[10]: Result */
     variable[10] = CALL_static_type___MMLocalProperty___signature( variable[8] /*p*/)( variable[8] /*p*/) /*MMLocalProperty::signature*/;
+    /* Register variable[10]: Result */
     variable[10] = CALL_static_type___MMSignature___arity(variable[10])(variable[10]) /*MMSignature::arity*/;
+    /* Register variable[10]: Result */
     variable[10] = TAG_Bool((variable[10])==( TAG_Int(0)));
     if (UNTAG_Bool(variable[10])) { /*if*/
-      variable[10] = variable[0];
-      variable[10] = CALL_compiling_methods___CompilerVisitor___cfc(variable[10])(variable[10]) /*CompilerVisitor::cfc*/;
-      variable[11] = variable[0];
-      variable[11] = CALL_compiling_methods___CompilerVisitor___nmc(variable[11])(variable[11]) /*CompilerVisitor::nmc*/;
+      /* Register variable[10]: Result */
+      variable[10] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
+      /* Register variable[11]: Result */
+      variable[11] = CALL_compiling_methods___CompilerVisitor___nmc(variable[0])(variable[0]) /*CompilerVisitor::nmc*/;
+      /* Register variable[11]: Result */
       variable[11] = CALL_compiling_methods___NitMethodContext___method_params(variable[11])(variable[11]) /*NitMethodContext::method_params*/;
+      /* Register variable[12]: Local variable */
       variable[12] = variable[11];
+      /* Register variable[13]: Local variable */
       variable[13] =  TAG_Int(0);
+      /* Register variable[14]: Method return value and escape marker */
+      /* Register variable[15]: Result */
       variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-      variable[16] = variable[15];
-      if (UNTAG_Bool(variable[16])) { /* and */
-        variable[16] = variable[12];
-        variable[16] = ATTR_array___AbstractArray____length(variable[16]) /*AbstractArray::_length*/;
-        variable[16] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[16]));
+      /* Ensure var variable[15]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[15])) { /* and */
+        /* Register variable[15]: Result */
+        variable[15] = ATTR_array___AbstractArrayRead____length(variable[12]) /*AbstractArrayRead::_length*/;
+        /* Register variable[15]: Result */
+        variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[15]));
       }
-      variable[15] = variable[16];
-      if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[15] = variable[12];
-      variable[15] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
+      /* Register variable[15]: Result */
+      if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[15]: Result */
+      variable[15] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
+      /* Register variable[15]: Result */
       variable[15] = UNBOX_NativeArray(variable[15])[UNTAG_Int( variable[13] /*index*/)];
       variable[14] = variable[15];
-      goto return_label14;
-      return_label14: while(false);
+      goto return_label31;
+      return_label31: while(false);
+      /* Register variable[11]: Result */
       variable[11] = variable[14];
+      /* Register variable[10]: Result */
       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] = CALL_compiling_methods___CompilerVisitor___nmc(variable[10])(variable[10]) /*CompilerVisitor::nmc*/;
+      /* Register variable[10]: Result */
+      variable[10] = CALL_compiling_methods___CompilerVisitor___nmc(variable[0])(variable[0]) /*CompilerVisitor::nmc*/;
+      /* Register variable[10]: Result */
       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*/;
+      /* Register variable[10]: For iterator */
+      variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*AbstractArrayRead::iterator*/;
       while (true) { /*for*/
+        /* Register variable[11]: For 'is_ok' result */
         variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[11])) break; /*for*/
-        variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
+        variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
+        /* Register variable[12]: Local variable */
         variable[12] = variable[11];
-        variable[13] = variable[0];
-        variable[13] = CALL_compiling_methods___CompilerVisitor___cfc(variable[13])(variable[13]) /*CompilerVisitor::cfc*/;
+        /* Register variable[13]: Result */
+        variable[13] = CALL_compiling_methods___CompilerVisitor___cfc(variable[0])(variable[0]) /*CompilerVisitor::cfc*/;
+        /* Register variable[13]: Result */
         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);
+        continue_32: while(0);
         CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
       }
-      break_15: while(0);
+      break_32: while(0);
     }
-    variable[10] = variable[0];
-    CALL_compiling_methods___MMMethod___compile_call( variable[8] /*p*/)( variable[8] /*p*/, variable[10],  variable[9] /*cargs*/) /*MMMethod::compile_call*/;
+    CALL_compiling_methods___MMMethod___compile_stmt_call( variable[8] /*p*/)( variable[8] /*p*/, variable[0],  variable[9] /*cargs*/) /*MMMethod::compile_stmt_call*/;
     variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
-    continue_12: while(0);
+    continue_29: while(0);
   }
-  break_12: while(0);
-  return_label6: while(false);
+  break_29: while(0);
+  return_label23: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___CFunctionContext___visitor(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 144, LOCATE_compiling_methods___CFunctionContext___visitor};
+  struct trace_t trace = {NULL, NULL, 143, LOCATE_compiling_methods___CFunctionContext___visitor};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___CFunctionContext____visitor( self) /*CFunctionContext::_visitor*/;
 }
-val_t compiling_methods___CFunctionContext___in_closure(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 155, LOCATE_compiling_methods___CFunctionContext___in_closure};
+val_t compiling_methods___CFunctionContext___closure(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 154, LOCATE_compiling_methods___CFunctionContext___closure};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
-  return ATTR_compiling_methods___CFunctionContext____in_closure( self) /*CFunctionContext::_in_closure*/;
+  return ATTR_compiling_methods___CFunctionContext____closure( self) /*CFunctionContext::_closure*/;
 }
-void compiling_methods___CFunctionContext___in_closure__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 155, LOCATE_compiling_methods___CFunctionContext___in_closure__eq};
+void compiling_methods___CFunctionContext___closure__eq(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 154, LOCATE_compiling_methods___CFunctionContext___closure__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
-  ATTR_compiling_methods___CFunctionContext____in_closure( self) /*CFunctionContext::_in_closure*/ =  param0;
+  ATTR_compiling_methods___CFunctionContext____closure( self) /*CFunctionContext::_closure*/ =  param0;
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___CFunctionContext___varname(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 158, LOCATE_compiling_methods___CFunctionContext___varname};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 157, LOCATE_compiling_methods___CFunctionContext___varname};
+  val_t variable[4];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  variable[3] = ATTR_compiling_methods___CFunctionContext____in_closure(variable[3]) /*CFunctionContext::_in_closure*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = TAG_Bool(( variable[1] /*v*/==NIT_NULL) || VAL_ISA( variable[1] /*v*/, COLOR_ClosureVariable, ID_ClosureVariable)) /*cast ClosureVariable*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
-    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];
-    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] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6],  variable[1] /*v*/) /*Map::[]*/;
-    variable[7] = variable[6];
-    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];
-    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*/;
+    /* Register variable[3]: Result */
+    variable[3] = ATTR_compiling_methods___CFunctionContext____varindexes(variable[0]) /*CFunctionContext::_varindexes*/;
+    /* Register variable[3]: Result */
+    variable[3] = CALL_abstract_collection___MapRead_____bra(variable[3])(variable[3],  variable[1] /*v*/) /*MapRead::[]*/;
+    /* Register variable[3]: Result */
+    variable[3] = CALL_compiling_methods___CFunctionContext___closure_variable(variable[0])(variable[0], variable[3]) /*CFunctionContext::closure_variable*/;
     variable[2] = variable[3];
-    goto return_label16;
+    goto return_label33;
   } else { /*if*/
-    variable[3] = variable[0];
-    variable[3] = ATTR_compiling_methods___CFunctionContext____varnames(variable[3]) /*CFunctionContext::_varnames*/;
-    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*v*/) /*Map::[]*/;
+    /* Register variable[3]: Result */
+    variable[3] = ATTR_compiling_methods___CFunctionContext____varindexes(variable[0]) /*CFunctionContext::_varindexes*/;
+    /* Register variable[3]: Result */
+    variable[3] = CALL_abstract_collection___MapRead_____bra(variable[3])(variable[3],  variable[1] /*v*/) /*MapRead::[]*/;
+    /* Register variable[3]: Result */
+    variable[3] = CALL_compiling_methods___CFunctionContext___variable(variable[0])(variable[0], variable[3]) /*CFunctionContext::variable*/;
     variable[2] = variable[3];
-    goto return_label16;
+    goto return_label33;
   }
-  return_label16: while(false);
+  return_label33: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
-val_t compiling_methods___CFunctionContext___get_var(val_t  self) {
+val_t compiling_methods___CFunctionContext___get_var(val_t  self, val_t  param0) {
   struct trace_t trace = {NULL, NULL, 167, LOCATE_compiling_methods___CFunctionContext___get_var};
-  val_t variable[5];
-  void **closurevariable = NULL;
+    static val_t once_value_35 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_36 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_37 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
-  variable[3] = variable[0];
-  variable[4] = variable[0];
-  variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/;
-  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];
-  variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CFunctionContext___variable(variable[0])(variable[0], variable[4]) /*CFunctionContext::variable*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Result */
+  variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/;
+  /* Register variable[4]: Result */
   variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1)));
-  ATTR_compiling_methods___CFunctionContext____variable_index(variable[3]) /*CFunctionContext::_variable_index*/ = variable[4];
-  variable[3] = variable[0];
-  variable[3] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[3]) /*CFunctionContext::_variable_index*/;
-  variable[4] = variable[0];
-  variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index_max(variable[4]) /*CFunctionContext::_variable_index_max*/;
-  variable[3] = TAG_Bool(UNTAG_Int(variable[3])>UNTAG_Int(variable[4]));
-  if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = variable[0];
-    variable[4] = variable[0];
-    variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/;
-    ATTR_compiling_methods___CFunctionContext____variable_index_max(variable[3]) /*CFunctionContext::_variable_index_max*/ = variable[4];
+  ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/ = variable[4];
+  /* Register variable[4]: Result */
+  variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/;
+  /* Register variable[5]: Result */
+  variable[5] = ATTR_compiling_methods___CFunctionContext____variable_index_max(variable[0]) /*CFunctionContext::_variable_index_max*/;
+  /* Register variable[4]: Result */
+  variable[4] = TAG_Bool(UNTAG_Int(variable[4])>UNTAG_Int(variable[5]));
+  if (UNTAG_Bool(variable[4])) { /*if*/
+    /* Register variable[4]: Result */
+    variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/;
+    ATTR_compiling_methods___CFunctionContext____variable_index_max(variable[0]) /*CFunctionContext::_variable_index_max*/ = variable[4];
+  }
+  /* Register variable[4]: Result */
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*comment*/ ==  NIT_NULL /*null*/) || (( variable[1] /*comment*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*comment*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*comment*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*comment*/)( variable[1] /*comment*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable[4])) { /*if*/
+    /* Register variable[4]: Result */
+    variable[4] = CALL_compiling_methods___CFunctionContext___visitor(variable[0])(variable[0]) /*CFunctionContext::visitor*/;
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_35 != NIT_NULL) variable[6] = once_value_35;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("/* Register "), TAG_Int(12)) /*new String*/;
+      once_value_35 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    variable[6] =  variable[3] /*v*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_36 != NIT_NULL) variable[6] = once_value_36;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
+      once_value_36 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    variable[6] =  variable[1] /*comment*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_37 != NIT_NULL) variable[6] = once_value_37;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)) /*new String*/;
+      once_value_37 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[5]: Result */
+    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*/;
   }
-  variable[1] =  variable[2] /*v*/;
-  goto return_label17;
-  return_label17: while(false);
+  variable[2] =  variable[3] /*v*/;
+  goto return_label34;
+  return_label34: while(false);
   tracehead = trace.prev;
-  return variable[1];
+  return variable[2];
 }
 val_t compiling_methods___CFunctionContext___register_variable(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 179, LOCATE_compiling_methods___CFunctionContext___register_variable};
-  val_t variable[12];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 181, LOCATE_compiling_methods___CFunctionContext___register_variable};
+  static val_t once_value_39 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_compiling_methods___CFunctionContext___get_var(variable[4])(variable[4]) /*CFunctionContext::get_var*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = ATTR_compiling_methods___CFunctionContext____varindexes(variable[0]) /*CFunctionContext::_varindexes*/;
+  /* Register variable[4]: Result */
+  variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3],  variable[1] /*v*/, variable[4]) /*Map::[]=*/;
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Once String constant */
+  if (once_value_39 != NIT_NULL) variable[4] = once_value_39;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Local variable"), TAG_Int(14)) /*new String*/;
+    once_value_39 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CFunctionContext___get_var(variable[0])(variable[0], 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_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];
-  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] = 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];
-  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);
+  goto return_label38;
+  return_label38: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___CFunctionContext___register_closurevariable(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 189, LOCATE_compiling_methods___CFunctionContext___register_closurevariable};
-  val_t variable[11];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 191, LOCATE_compiling_methods___CFunctionContext___register_closurevariable};
+  static val_t once_value_41 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_42 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_43 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_44 = NIT_NULL; /* Once value for string variable[5]*/
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_41 != NIT_NULL) variable[5] = once_value_41;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("closurevariable["), TAG_Int(16)) /*new String*/;
+    once_value_41 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[0]) /*CFunctionContext::_closurevariable_index*/;
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_42 != NIT_NULL) variable[5] = once_value_42;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)) /*new String*/;
+    once_value_42 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
   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*/;
-  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*/;
+  /* Register variable[4]: Result */
+  variable[4] = ATTR_compiling_methods___CFunctionContext____varindexes(variable[0]) /*CFunctionContext::_varindexes*/;
+  /* Register variable[5]: Result */
+  variable[5] = ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[0]) /*CFunctionContext::_closurevariable_index*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  variable[1] /*v*/, variable[5]) /*Map::[]=*/;
+  ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[0]) /*CFunctionContext::_closurevariable_index*/ = TAG_Int(UNTAG_Int(ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[0]) /*CFunctionContext::_closurevariable_index*/)+UNTAG_Int( TAG_Int(1)));
+  /* Register variable[4]: Result */
+  variable[4] = ATTR_compiling_methods___CFunctionContext____closure(variable[0]) /*CFunctionContext::_closure*/;
+  /* Register variable[4]: Result */
+  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_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];
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-    variable[7] =  variable[3] /*s*/;
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
-    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
-    variable[9] = variable[8];
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_43 != NIT_NULL) variable[5] = once_value_43;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString("(closctx->"), TAG_Int(10)) /*new String*/;
+      once_value_43 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    variable[5] =  variable[3] /*s*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_44 != NIT_NULL) variable[5] = once_value_44;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+      once_value_44 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[4]: Result */
     variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
     variable[2] = variable[4];
-    goto return_label19;
+    goto return_label40;
   } else { /*if*/
     variable[2] =  variable[3] /*s*/;
-    goto return_label19;
+    goto return_label40;
   }
-  return_label19: while(false);
+  return_label40: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___CFunctionContext___variable(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 201, LOCATE_compiling_methods___CFunctionContext___variable};
+  struct trace_t trace = {NULL, NULL, 203, LOCATE_compiling_methods___CFunctionContext___variable};
+    static val_t once_value_46; static int once_bool_46; /* Once value for variable[4]*/
+        static val_t once_value_48 = NIT_NULL; /* Once value for string variable[8]*/
+        static val_t once_value_49 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_51; static int once_bool_51; /* Once value for variable[4]*/
+        static val_t once_value_53 = NIT_NULL; /* Once value for string variable[8]*/
+        static val_t once_value_54 = NIT_NULL; /* Once value for string variable[8]*/
   val_t variable[9];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  variable[3] = ATTR_compiling_methods___CFunctionContext____in_closure(variable[3]) /*CFunctionContext::_in_closure*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = CALL_compiling_methods___CFunctionContext___closure(variable[0])(variable[0]) /*CFunctionContext::closure*/;
+  /* Register variable[3]: Result */
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = NEW_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];
-    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
-    variable[6] =  variable[1] /*i*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
+    /* Register variable[3]: Local variable */
+    /* Register variable[4]: Once expression result */
+    if (once_bool_46) variable[4] = once_value_46;
+    else {
+      /* Register variable[4]: Result */
+      variable[4] = NEW_Array_array___Array___init() /*new Array[String]*/;
+      once_value_46 = variable[4];
+      once_bool_46 = true;
+    }
+    /* Register variable[4]: Result */
+    variable[3] = variable[4];
+    /* Register variable[4]: Result */
+    variable[4] = CALL_abstract_collection___Collection___length( variable[3] /*vn*/)( variable[3] /*vn*/) /*AbstractArrayRead::length*/;
+    /* Register variable[4]: Result */
+    variable[4] = TAG_Bool(UNTAG_Int(variable[4])<=UNTAG_Int( variable[1] /*i*/));
+    if (UNTAG_Bool(variable[4])) { /*if*/
+      /* Register variable[4]: Result */
+      variable[4] = CALL_abstract_collection___Collection___length( variable[3] /*vn*/)( variable[3] /*vn*/) /*AbstractArrayRead::length*/;
+      /* Register variable[4]: Result */
+      variable[4] = NEW_Range_range___Range___init(variable[4],  variable[1] /*i*/) /*new Range[Int]*/;
+      /* Register variable[4]: For iterator */
+      variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
+      while (true) { /*for*/
+        /* Register variable[5]: For 'is_ok' result */
+        variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
+        if (!UNTAG_Bool(variable[5])) break; /*for*/
+        variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
+        /* Register variable[6]: Local variable */
+        variable[6] = variable[5];
+        variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+        /* Register variable[8]: Once String constant */
+        if (once_value_48 != NIT_NULL) variable[8] = once_value_48;
+        else {
+          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("(closctx->variable["), TAG_Int(19)) /*new String*/;
+          once_value_48 = variable[8];
+        }
+        /* Register variable[8]: Result */
+        /* Ensure var variable[8]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+        variable[8] =  variable[6] /*j*/ /* Ensure var: super-string element*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+        /* Register variable[8]: Once String constant */
+        if (once_value_49 != NIT_NULL) variable[8] = once_value_49;
+        else {
+          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("])"), TAG_Int(2)) /*new String*/;
+          once_value_49 = variable[8];
+        }
+        /* Register variable[8]: Result */
+        /* Ensure var variable[8]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+        /* Register variable[7]: Result */
+        variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+        CALL_abstract_collection___Map_____braeq( variable[3] /*vn*/)( variable[3] /*vn*/,  variable[6] /*j*/, variable[7]) /*Array::[]=*/;
+        continue_47: while(0);
+        CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
+      }
+      break_47: while(0);
+    }
+    /* Register variable[4]: Local variable */
+    variable[4] =  variable[3] /*vn*/;
+    /* Register variable[5]: Local variable */
+    variable[5] =  variable[1] /*i*/;
+    /* Register variable[6]: Method return value and escape marker */
+    /* Register variable[7]: Result */
+    variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[7]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[7])) { /* and */
+      /* Register variable[7]: Result */
+      variable[7] = ATTR_array___AbstractArrayRead____length(variable[4]) /*AbstractArrayRead::_length*/;
+      /* Register variable[7]: Result */
+      variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)<UNTAG_Int(variable[7]));
+    }
+    /* Register variable[7]: Result */
+    if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[7]: Result */
+    variable[7] = ATTR_array___Array____items(variable[4]) /*Array::_items*/;
+    /* Register variable[7]: Result */
+    variable[7] = UNBOX_NativeArray(variable[7])[UNTAG_Int( variable[5] /*index*/)];
+    variable[6] = variable[7];
+    goto return_label50;
+    return_label50: while(false);
+    /* Register variable[4]: Result */
+    variable[4] = variable[6];
+    variable[2] = variable[4];
+    goto return_label45;
+  } else { /*if*/
+    /* Register variable[3]: Local variable */
+    /* Register variable[4]: Once expression result */
+    if (once_bool_51) variable[4] = once_value_51;
+    else {
+      /* Register variable[4]: Result */
+      variable[4] = NEW_Array_array___Array___init() /*new Array[String]*/;
+      once_value_51 = variable[4];
+      once_bool_51 = true;
+    }
+    /* Register variable[4]: Result */
+    variable[3] = variable[4];
+    /* Register variable[4]: Result */
+    variable[4] = CALL_abstract_collection___Collection___length( variable[3] /*vn*/)( variable[3] /*vn*/) /*AbstractArrayRead::length*/;
+    /* Register variable[4]: Result */
+    variable[4] = TAG_Bool(UNTAG_Int(variable[4])<=UNTAG_Int( variable[1] /*i*/));
+    if (UNTAG_Bool(variable[4])) { /*if*/
+      /* Register variable[4]: Result */
+      variable[4] = CALL_abstract_collection___Collection___length( variable[3] /*vn*/)( variable[3] /*vn*/) /*AbstractArrayRead::length*/;
+      /* Register variable[4]: Result */
+      variable[4] = NEW_Range_range___Range___init(variable[4],  variable[1] /*i*/) /*new Range[Int]*/;
+      /* Register variable[4]: For iterator */
+      variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
+      while (true) { /*for*/
+        /* Register variable[5]: For 'is_ok' result */
+        variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
+        if (!UNTAG_Bool(variable[5])) break; /*for*/
+        variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
+        /* Register variable[6]: Local variable */
+        variable[6] = variable[5];
+        variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+        /* Register variable[8]: Once String constant */
+        if (once_value_53 != NIT_NULL) variable[8] = once_value_53;
+        else {
+          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("variable["), TAG_Int(9)) /*new String*/;
+          once_value_53 = variable[8];
+        }
+        /* Register variable[8]: Result */
+        /* Ensure var variable[8]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+        variable[8] =  variable[6] /*j*/ /* Ensure var: super-string element*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+        /* Register variable[8]: Once String constant */
+        if (once_value_54 != NIT_NULL) variable[8] = once_value_54;
+        else {
+          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)) /*new String*/;
+          once_value_54 = variable[8];
+        }
+        /* Register variable[8]: Result */
+        /* Ensure var variable[8]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+        /* Register variable[7]: Result */
+        variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+        CALL_abstract_collection___Map_____braeq( variable[3] /*vn*/)( variable[3] /*vn*/,  variable[6] /*j*/, variable[7]) /*Array::[]=*/;
+        continue_52: while(0);
+        CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
+      }
+      break_52: while(0);
+    }
+    /* Register variable[4]: Local variable */
+    variable[4] =  variable[3] /*vn*/;
+    /* Register variable[5]: Local variable */
+    variable[5] =  variable[1] /*i*/;
+    /* Register variable[6]: Method return value and escape marker */
+    /* Register variable[7]: Result */
+    variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[7]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[7])) { /* and */
+      /* Register variable[7]: Result */
+      variable[7] = ATTR_array___AbstractArrayRead____length(variable[4]) /*AbstractArrayRead::_length*/;
+      /* Register variable[7]: Result */
+      variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)<UNTAG_Int(variable[7]));
+    }
+    /* Register variable[7]: Result */
+    if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[7]: Result */
+    variable[7] = ATTR_array___Array____items(variable[4]) /*Array::_items*/;
+    /* Register variable[7]: Result */
+    variable[7] = UNBOX_NativeArray(variable[7])[UNTAG_Int( variable[5] /*index*/)];
+    variable[6] = variable[7];
+    goto return_label55;
+    return_label55: while(false);
+    /* Register variable[4]: Result */
+    variable[4] = variable[6];
+    variable[2] = variable[4];
+    goto return_label45;
+  }
+  return_label45: while(false);
+  tracehead = trace.prev;
+  return variable[2];
+}
+val_t compiling_methods___CFunctionContext___closure_variable(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 225, LOCATE_compiling_methods___CFunctionContext___closure_variable};
+    static val_t once_value_57 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_58 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_59 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_60 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = CALL_compiling_methods___CFunctionContext___closure(variable[0])(variable[0]) /*CFunctionContext::closure*/;
+  /* Register variable[3]: Result */
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable[3])) { /*if*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_57 != NIT_NULL) variable[4] = once_value_57;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("(closctx->closurevariable["), TAG_Int(26)) /*new String*/;
+      once_value_57 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    variable[4] =  variable[1] /*i*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_58 != NIT_NULL) variable[4] = once_value_58;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("])"), TAG_Int(2)) /*new String*/;
+      once_value_58 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[3]: Result */
     variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
     variable[2] = variable[3];
-    goto return_label20;
+    goto return_label56;
   } else { /*if*/
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
-    variable[6] =  variable[1] /*i*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_59 != NIT_NULL) variable[4] = once_value_59;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("closurevariable["), TAG_Int(16)) /*new String*/;
+      once_value_59 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    variable[4] =  variable[1] /*i*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_60 != NIT_NULL) variable[4] = once_value_60;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)) /*new String*/;
+      once_value_60 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[3]: Result */
     variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
     variable[2] = variable[3];
-    goto return_label20;
+    goto return_label56;
+  }
+  return_label56: while(false);
+  tracehead = trace.prev;
+  return variable[2];
+}
+val_t compiling_methods___CFunctionContext___is_valid_variable(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 235, LOCATE_compiling_methods___CFunctionContext___is_valid_variable};
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/;
+  /* Register variable[3]: Result */
+  variable[3] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[3]) /*new Range[Int]*/;
+  /* Register variable[3]: For iterator */
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Range::iterator*/;
+  while (true) { /*for*/
+    /* Register variable[4]: For 'is_ok' result */
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable[4])) break; /*for*/
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[5]: Local variable */
+    variable[5] = variable[4];
+    /* Register variable[6]: Result */
+    variable[6] = CALL_compiling_methods___CFunctionContext___variable(variable[0])(variable[0],  variable[5] /*i*/) /*CFunctionContext::variable*/;
+    /* Register variable[6]: Result */
+    variable[6] = TAG_Bool(( variable[1] /*s*/ == variable[6]) || (( variable[1] /*s*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*s*/)( variable[1] /*s*/, variable[6]) /*String::==*/)));
+    if (UNTAG_Bool(variable[6])) { /*if*/
+      variable[2] =  TAG_Bool(true);
+      goto return_label61;
+    }
+    continue_62: while(0);
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
-  return_label20: while(false);
+  break_62: while(0);
+  variable[2] =  TAG_Bool(false);
+  goto return_label61;
+  return_label61: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 void compiling_methods___CFunctionContext___free_var(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 211, LOCATE_compiling_methods___CFunctionContext___free_var};
-  val_t variable[5];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 244, LOCATE_compiling_methods___CFunctionContext___free_var};
+  val_t variable[4];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  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] = CALL_compiling_methods___CFunctionContext___variable(variable[3])(variable[3], variable[4]) /*CFunctionContext::variable*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/;
+  /* Register variable[3]: Result */
+  variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1)));
+  /* Register variable[3]: Result */
+  variable[3] = CALL_compiling_methods___CFunctionContext___variable(variable[0])(variable[0], variable[3]) /*CFunctionContext::variable*/;
+  /* Register variable[3]: Result */
   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];
-    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)));
-    ATTR_compiling_methods___CFunctionContext____variable_index(variable[3]) /*CFunctionContext::_variable_index*/ = variable[4];
+    /* Register variable[3]: Result */
+    variable[3] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/;
+    /* Register variable[3]: Result */
+    variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1)));
+    ATTR_compiling_methods___CFunctionContext____variable_index(variable[0]) /*CFunctionContext::_variable_index*/ = variable[3];
   }
-  return_label21: while(false);
+  return_label63: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___CFunctionContext___generate_var_decls(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 220, LOCATE_compiling_methods___CFunctionContext___generate_var_decls};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 253, LOCATE_compiling_methods___CFunctionContext___generate_var_decls};
+    static val_t once_value_65 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_66 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_67 = NIT_NULL; /* Once value for string variable[3]*/
+    static val_t once_value_68 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_69 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_70 = NIT_NULL; /* Once value for string variable[3]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
-  variable[2] = variable[0];
-  variable[2] = ATTR_compiling_methods___CFunctionContext____variable_index_max(variable[2]) /*CFunctionContext::_variable_index_max*/;
+  /* Register variable[1]: Method return value and escape marker */
+  /* Register variable[2]: Result */
+  variable[2] = ATTR_compiling_methods___CFunctionContext____variable_index_max(variable[0]) /*CFunctionContext::_variable_index_max*/;
+  /* Register variable[2]: Result */
   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] = 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];
-    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] = 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];
-    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[2]: Result */
+    variable[2] = CALL_compiling_methods___CFunctionContext___visitor(variable[0])(variable[0]) /*CFunctionContext::visitor*/;
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_65 != NIT_NULL) variable[4] = once_value_65;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("val_t variable["), TAG_Int(15)) /*new String*/;
+      once_value_65 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[4]: Result */
+    variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index_max(variable[0]) /*CFunctionContext::_variable_index_max*/;
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_66 != NIT_NULL) variable[4] = once_value_66;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("];"), TAG_Int(2)) /*new String*/;
+      once_value_66 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[3]: Result */
     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] = 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*/
-    CALL_compiling_base___CompilerVisitor___add_decl(variable[2])(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
+    /* Register variable[2]: Result */
+    variable[2] = CALL_compiling_methods___CFunctionContext___visitor(variable[0])(variable[0]) /*CFunctionContext::visitor*/;
+    /* Register variable[3]: Once String constant */
+    if (once_value_67 != NIT_NULL) variable[3] = once_value_67;
+    else {
+      variable[3] = NEW_String_string___String___with_native(BOX_NativeString("val_t *variable = NULL;"), TAG_Int(23)) /*new String*/;
+      once_value_67 = variable[3];
+    }
+    /* Register variable[3]: Result */
+    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*/;
+  /* Register variable[2]: Result */
+  variable[2] = ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[0]) /*CFunctionContext::_closurevariable_index*/;
+  /* Register variable[2]: Result */
   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] = 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];
-    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] = 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];
-    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[2]: Result */
+    variable[2] = CALL_compiling_methods___CFunctionContext___visitor(variable[0])(variable[0]) /*CFunctionContext::visitor*/;
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_68 != NIT_NULL) variable[4] = once_value_68;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("struct WBT_ *closurevariable["), TAG_Int(29)) /*new String*/;
+      once_value_68 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[4]: Result */
+    variable[4] = ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[0]) /*CFunctionContext::_closurevariable_index*/;
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_69 != NIT_NULL) variable[4] = once_value_69;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("];"), TAG_Int(2)) /*new String*/;
+      once_value_69 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[3]: Result */
     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] = 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*/
+    /* Register variable[2]: Result */
+    variable[2] = CALL_compiling_methods___CFunctionContext___visitor(variable[0])(variable[0]) /*CFunctionContext::visitor*/;
+    /* Register variable[3]: Once String constant */
+    if (once_value_70 != NIT_NULL) variable[3] = once_value_70;
+    else {
+      variable[3] = NEW_String_string___String___with_native(BOX_NativeString("struct WBT_ **closurevariable = NULL;"), TAG_Int(37)) /*new String*/;
+      once_value_70 = variable[3];
+    }
+    /* Register variable[3]: Result */
     CALL_compiling_base___CompilerVisitor___add_decl(variable[2])(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
   }
-  return_label22: while(false);
+  return_label64: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___CFunctionContext___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 236, LOCATE_compiling_methods___CFunctionContext___init};
-  val_t variable[4];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 269, LOCATE_compiling_methods___CFunctionContext___init};
+  val_t variable[3];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CFunctionContext].i]) return;
-  variable[3] = variable[0];
-  ATTR_compiling_methods___CFunctionContext____visitor(variable[3]) /*CFunctionContext::_visitor*/ =  variable[1] /*v*/;
-  return_label23: while(false);
+  /* Register variable[2]: Method return value and escape marker */
+  ATTR_compiling_methods___CFunctionContext____visitor(variable[0]) /*CFunctionContext::_visitor*/ =  variable[1] /*v*/;
+  return_label71: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CFunctionContext].i] = 1;
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___NitMethodContext___method(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 241, LOCATE_compiling_methods___NitMethodContext___method};
+  struct trace_t trace = {NULL, NULL, 274, LOCATE_compiling_methods___NitMethodContext___method};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___NitMethodContext____method( self) /*NitMethodContext::_method*/;
 }
 val_t compiling_methods___NitMethodContext___method_params(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 244, LOCATE_compiling_methods___NitMethodContext___method_params};
+  struct trace_t trace = {NULL, NULL, 277, LOCATE_compiling_methods___NitMethodContext___method_params};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___NitMethodContext____method_params( self) /*NitMethodContext::_method_params*/;
 }
 void compiling_methods___NitMethodContext___method_params__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 244, LOCATE_compiling_methods___NitMethodContext___method_params__eq};
+  struct trace_t trace = {NULL, NULL, 277, LOCATE_compiling_methods___NitMethodContext___method_params__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___NitMethodContext____method_params( self) /*NitMethodContext::_method_params*/ =  param0;
@@ -812,18 +1492,18 @@ void compiling_methods___NitMethodContext___method_params__eq(val_t  self, val_t
   return;
 }
 val_t compiling_methods___NitMethodContext___return_label(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 247, LOCATE_compiling_methods___NitMethodContext___return_label};
+  struct trace_t trace = {NULL, NULL, 280, LOCATE_compiling_methods___NitMethodContext___return_label};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___NitMethodContext____return_label( self) /*NitMethodContext::_return_label*/;
 }
 void compiling_methods___NitMethodContext___return_label__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 247, LOCATE_compiling_methods___NitMethodContext___return_label__eq};
+  struct trace_t trace = {NULL, NULL, 280, LOCATE_compiling_methods___NitMethodContext___return_label__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___NitMethodContext____return_label( self) /*NitMethodContext::_return_label*/ =  param0;
@@ -831,18 +1511,18 @@ void compiling_methods___NitMethodContext___return_label__eq(val_t  self, val_t
   return;
 }
 val_t compiling_methods___NitMethodContext___break_label(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 250, LOCATE_compiling_methods___NitMethodContext___break_label};
+  struct trace_t trace = {NULL, NULL, 283, LOCATE_compiling_methods___NitMethodContext___break_label};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___NitMethodContext____break_label( self) /*NitMethodContext::_break_label*/;
 }
 void compiling_methods___NitMethodContext___break_label__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 250, LOCATE_compiling_methods___NitMethodContext___break_label__eq};
+  struct trace_t trace = {NULL, NULL, 283, LOCATE_compiling_methods___NitMethodContext___break_label__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___NitMethodContext____break_label( self) /*NitMethodContext::_break_label*/ =  param0;
@@ -850,18 +1530,18 @@ void compiling_methods___NitMethodContext___break_label__eq(val_t  self, val_t
   return;
 }
 val_t compiling_methods___NitMethodContext___continue_label(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 253, LOCATE_compiling_methods___NitMethodContext___continue_label};
+  struct trace_t trace = {NULL, NULL, 286, LOCATE_compiling_methods___NitMethodContext___continue_label};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___NitMethodContext____continue_label( self) /*NitMethodContext::_continue_label*/;
 }
 void compiling_methods___NitMethodContext___continue_label__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 253, LOCATE_compiling_methods___NitMethodContext___continue_label__eq};
+  struct trace_t trace = {NULL, NULL, 286, LOCATE_compiling_methods___NitMethodContext___continue_label__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___NitMethodContext____continue_label( self) /*NitMethodContext::_continue_label*/ =  param0;
@@ -869,18 +1549,18 @@ void compiling_methods___NitMethodContext___continue_label__eq(val_t  self, val_
   return;
 }
 val_t compiling_methods___NitMethodContext___return_value(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 256, LOCATE_compiling_methods___NitMethodContext___return_value};
+  struct trace_t trace = {NULL, NULL, 289, LOCATE_compiling_methods___NitMethodContext___return_value};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___NitMethodContext____return_value( self) /*NitMethodContext::_return_value*/;
 }
 void compiling_methods___NitMethodContext___return_value__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 256, LOCATE_compiling_methods___NitMethodContext___return_value__eq};
+  struct trace_t trace = {NULL, NULL, 289, LOCATE_compiling_methods___NitMethodContext___return_value__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___NitMethodContext____return_value( self) /*NitMethodContext::_return_value*/ =  param0;
@@ -888,18 +1568,18 @@ void compiling_methods___NitMethodContext___return_value__eq(val_t  self, val_t
   return;
 }
 val_t compiling_methods___NitMethodContext___break_value(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 259, LOCATE_compiling_methods___NitMethodContext___break_value};
+  struct trace_t trace = {NULL, NULL, 292, LOCATE_compiling_methods___NitMethodContext___break_value};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___NitMethodContext____break_value( self) /*NitMethodContext::_break_value*/;
 }
 void compiling_methods___NitMethodContext___break_value__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 259, LOCATE_compiling_methods___NitMethodContext___break_value__eq};
+  struct trace_t trace = {NULL, NULL, 292, LOCATE_compiling_methods___NitMethodContext___break_value__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___NitMethodContext____break_value( self) /*NitMethodContext::_break_value*/ =  param0;
@@ -907,18 +1587,18 @@ void compiling_methods___NitMethodContext___break_value__eq(val_t  self, val_t
   return;
 }
 val_t compiling_methods___NitMethodContext___continue_value(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 262, LOCATE_compiling_methods___NitMethodContext___continue_value};
+  struct trace_t trace = {NULL, NULL, 295, LOCATE_compiling_methods___NitMethodContext___continue_value};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___NitMethodContext____continue_value( self) /*NitMethodContext::_continue_value*/;
 }
 void compiling_methods___NitMethodContext___continue_value__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 262, LOCATE_compiling_methods___NitMethodContext___continue_value__eq};
+  struct trace_t trace = {NULL, NULL, 295, LOCATE_compiling_methods___NitMethodContext___continue_value__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___NitMethodContext____continue_value( self) /*NitMethodContext::_continue_value*/ =  param0;
@@ -926,3303 +1606,7029 @@ void compiling_methods___NitMethodContext___continue_value__eq(val_t  self, val_
   return;
 }
 void compiling_methods___NitMethodContext___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 265, LOCATE_compiling_methods___NitMethodContext___init};
-  val_t variable[4];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 298, LOCATE_compiling_methods___NitMethodContext___init};
+  val_t variable[3];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_NitMethodContext].i]) return;
-  variable[3] = variable[0];
-  ATTR_compiling_methods___NitMethodContext____method(variable[3]) /*NitMethodContext::_method*/ =  variable[1] /*method*/;
-  return_label24: while(false);
+  /* Register variable[2]: Method return value and escape marker */
+  ATTR_compiling_methods___NitMethodContext____method(variable[0]) /*NitMethodContext::_method*/ =  variable[1] /*method*/;
+  return_label72: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_NitMethodContext].i] = 1;
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___ClosureVariable___ctypename(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 274, LOCATE_compiling_methods___ClosureVariable___ctypename};
+  struct trace_t trace = {NULL, NULL, 307, LOCATE_compiling_methods___ClosureVariable___ctypename};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   return ATTR_compiling_methods___ClosureVariable____ctypename( self) /*ClosureVariable::_ctypename*/;
 }
 void compiling_methods___ClosureVariable___ctypename__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 274, LOCATE_compiling_methods___ClosureVariable___ctypename__eq};
+  struct trace_t trace = {NULL, NULL, 307, LOCATE_compiling_methods___ClosureVariable___ctypename__eq};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   ATTR_compiling_methods___ClosureVariable____ctypename( self) /*ClosureVariable::_ctypename*/ =  param0;
   tracehead = trace.prev;
   return;
 }
-val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 278, LOCATE_compiling_methods___MMMethod___compile_call};
-      static val_t once_value_26; static int once_bool_26; /* Once value for variable[7]*/
-        static val_t once_value_27; static int once_bool_27; /* Once value for variable[8]*/
-  static val_t once_value_28; static int once_bool_28; /* Once value for variable[6]*/
-  static val_t once_value_29; static int once_bool_29; /* Once value for variable[7]*/
-    static val_t once_value_31; static int once_bool_31; /* Once value for variable[10]*/
-  val_t variable[31];
-  void **closurevariable = NULL;
+val_t compiling_methods___MMMethod___compile_expr_call(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 311, LOCATE_compiling_methods___MMMethod___compile_expr_call};
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_static_type___MMSignature___return_type(variable[4])(variable[4]) /*MMSignature::return_type*/;
+  /* Register variable[4]: Result */
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___MMMethod___compile_expr_call, LOCATE_compiling_methods, 315); nit_exit(1);}
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___MMMethod___intern_compile_call(variable[0])(variable[0],  variable[1] /*v*/,  variable[2] /*cargs*/) /*MMMethod::intern_compile_call*/;
+  variable[4] = variable[5];
+  /* Register variable[5]: Result */
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*s*/ ==  NIT_NULL /*null*/) || (( variable[4] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*s*/)( variable[4] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___MMMethod___compile_expr_call, LOCATE_compiling_methods, 317); nit_exit(1);}
+  variable[3] =  variable[4] /*s*/;
+  goto return_label73;
+  return_label73: while(false);
+  tracehead = trace.prev;
+  return variable[3];
+}
+void compiling_methods___MMMethod___compile_stmt_call(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 321, LOCATE_compiling_methods___MMMethod___compile_stmt_call};
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
-  variable[5] = variable[0];
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_static_type___MMSignature___return_type(variable[4])(variable[4]) /*MMSignature::return_type*/;
+  /* Register variable[4]: Result */
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___MMMethod___compile_stmt_call, LOCATE_compiling_methods, 325); nit_exit(1);}
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___MMMethod___intern_compile_call(variable[0])(variable[0],  variable[1] /*v*/,  variable[2] /*cargs*/) /*MMMethod::intern_compile_call*/;
   variable[4] = variable[5];
+  /* Register variable[5]: Result */
+  variable[5] = TAG_Bool(( variable[4] /*s*/ ==  NIT_NULL /*null*/) || (( variable[4] /*s*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*s*/)( variable[4] /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
+  if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___MMMethod___compile_stmt_call, LOCATE_compiling_methods, 327); nit_exit(1);}
+  return_label74: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___MMMethod___intern_compile_call(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 330, LOCATE_compiling_methods___MMMethod___intern_compile_call};
+      static val_t once_value_76; static int once_bool_76; /* Once value for variable[6]*/
+        static val_t once_value_77 = NIT_NULL; /* Once value for string variable[6]*/
+        static val_t once_value_78; static int once_bool_78; /* Once value for variable[6]*/
+          static val_t once_value_79 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_80; static int once_bool_80; /* Once value for variable[6]*/
+    static val_t once_value_81 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_82; static int once_bool_82; /* Once value for variable[7]*/
+    static val_t once_value_83 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_84 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_85 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_86 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_87 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_88 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_90 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_91 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_92 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_93 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_94 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_95 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_96 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_97 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_98 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_99; static int once_bool_99; /* Once value for variable[10]*/
+      static val_t once_value_100 = NIT_NULL; /* Once value for string variable[10]*/
+      static val_t once_value_101 = NIT_NULL; /* Once value for string variable[11]*/
+      static val_t once_value_102 = NIT_NULL; /* Once value for string variable[11]*/
+      static val_t once_value_103 = NIT_NULL; /* Once value for string variable[11]*/
+      static val_t once_value_105 = NIT_NULL; /* Once value for string variable[11]*/
+      static val_t once_value_107 = NIT_NULL; /* Once value for string variable[11]*/
+      static val_t once_value_108 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_109 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_110 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_112 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_113 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_114 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_115 = NIT_NULL; /* Once value for string variable[9]*/
+  val_t variable[15];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Local variable */
+  variable[4] = variable[0];
+  /* Register variable[5]: Result */
   variable[5] = TAG_Bool(( variable[4] /*i*/==NIT_NULL) || VAL_ISA( variable[4] /*i*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
+    /* Register variable[5]: Result */
     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] = 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*/;
+    /* Ensure var variable[5]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[5])) { /* and */
+      /* Register variable[5]: Result */
+      variable[5] = CALL_syntax_base___MMLocalProperty___node( variable[4] /*i*/)( variable[4] /*i*/) /*MMMethSrcMethod::node*/;
+      /* Register variable[5]: Result */
+      variable[5] = TAG_Bool((variable[5]==NIT_NULL) || VAL_ISA(variable[5], COLOR_AInternMethPropdef, ID_AInternMethPropdef)) /*cast AInternMethPropdef*/;
     }
-    variable[5] = variable[6];
-    variable[6] = variable[5];
-    if (!UNTAG_Bool(variable[6])) { /* or */
-      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;
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: Left 'or' operand*/
+    if (!UNTAG_Bool(variable[5])) { /* or */
+      /* Register variable[5]: Result */
+      variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[4] /*i*/)( variable[4] /*i*/) /*MMLocalProperty::local_class*/;
+      /* Register variable[5]: Result */
+      variable[5] = CALL_abstractmetamodel___MMLocalClass___name(variable[5])(variable[5]) /*MMLocalClass::name*/;
+      /* Register variable[6]: Once expression result */
+      if (once_bool_76) variable[6] = once_value_76;
       else {
-        variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Array"), TAG_Int(5)); /*new String*/
-        variable[7] = CALL_symbol___String___to_symbol(variable[7])(variable[7]) /*String::to_symbol*/;
-        once_value_26 = variable[7];
-        once_bool_26 = true;
+        /* Register variable[6]: Once String constant */
+        if (once_value_77 != NIT_NULL) variable[6] = once_value_77;
+        else {
+          variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Array"), TAG_Int(5)) /*new String*/;
+          once_value_77 = variable[6];
+        }
+        /* Register variable[6]: Result */
+        /* Register variable[6]: Result */
+        variable[6] = CALL_symbol___String___to_symbol(variable[6])(variable[6]) /*String::to_symbol*/;
+        once_value_76 = variable[6];
+        once_bool_76 = true;
       }
-      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] = CALL_abstractmetamodel___MMLocalProperty___name(variable[7])(variable[7]) /*MMLocalProperty::name*/;
-        if (once_bool_27) variable[8] = once_value_27;
+      /* Register variable[6]: Result */
+      /* Register variable[5]: Result */
+      variable[5] = TAG_Bool((variable[5] == variable[6]) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5],variable[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5], variable[6]) /*Object::==*/)))));
+      /* Ensure var variable[5]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[5])) { /* and */
+        /* Register variable[5]: Result */
+        variable[5] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+        /* Register variable[6]: Once expression result */
+        if (once_bool_78) variable[6] = once_value_78;
         else {
-          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
-          variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-          once_value_27 = variable[8];
-          once_bool_27 = true;
+          /* Register variable[6]: Once String constant */
+          if (once_value_79 != NIT_NULL) variable[6] = once_value_79;
+          else {
+            variable[6] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)) /*new String*/;
+            once_value_79 = variable[6];
+          }
+          /* Register variable[6]: Result */
+          /* Register variable[6]: Result */
+          variable[6] = CALL_symbol___String___to_symbol(variable[6])(variable[6]) /*String::to_symbol*/;
+          once_value_78 = variable[6];
+          once_bool_78 = true;
         }
-        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::==*/)))));
+        /* Register variable[6]: Result */
+        /* Register variable[5]: Result */
+        variable[5] = TAG_Bool((variable[5] == variable[6]) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5],variable[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5], variable[6]) /*Object::==*/)))));
       }
-      variable[6] = variable[7];
+      /* Register variable[5]: Result */
     }
-    variable[5] = variable[6];
+    /* Register variable[5]: Result */
     if (UNTAG_Bool(variable[5])) { /*if*/
+      /* Register variable[5]: Local variable */
+      /* Register variable[6]: Result */
       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;
+      goto return_label75;
     }
   }
-  if (once_bool_28) variable[6] = once_value_28;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Once expression result */
+  if (once_bool_80) variable[6] = once_value_80;
   else {
-    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+    /* Register variable[6]: Once String constant */
+    if (once_value_81 != NIT_NULL) variable[6] = once_value_81;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)) /*new String*/;
+      once_value_81 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Register variable[6]: Result */
     variable[6] = CALL_symbol___String___to_symbol(variable[6])(variable[6]) /*String::to_symbol*/;
-    once_value_28 = variable[6];
-    once_bool_28 = true;
+    once_value_80 = variable[6];
+    once_bool_80 = true;
   }
+  /* Register variable[6]: Result */
   variable[5] = variable[6];
-  if (once_bool_29) variable[7] = once_value_29;
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Once expression result */
+  if (once_bool_82) variable[7] = once_value_82;
   else {
-    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+    /* Register variable[7]: Once String constant */
+    if (once_value_83 != NIT_NULL) variable[7] = once_value_83;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)) /*new String*/;
+      once_value_83 = variable[7];
+    }
+    /* Register variable[7]: Result */
+    /* Register variable[7]: Result */
     variable[7] = CALL_symbol___String___to_symbol(variable[7])(variable[7]) /*String::to_symbol*/;
-    once_value_29 = variable[7];
-    once_bool_29 = true;
+    once_value_82 = variable[7];
+    once_bool_82 = true;
   }
+  /* Register variable[7]: Result */
   variable[6] = variable[7];
-  variable[7] = variable[0];
-  variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[7])(variable[7]) /*MMLocalProperty::name*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+  /* Register variable[7]: Result */
   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] = CALL_static_type___MMLocalProperty___signature(variable[8])(variable[8]) /*MMLocalProperty::signature*/;
+    /* Register variable[7]: Local variable */
+    /* Register variable[8]: Result */
+    variable[8] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+    /* Register variable[8]: Result */
     variable[8] = CALL_static_type___MMSignature___recv(variable[8])(variable[8]) /*MMSignature::recv*/;
+    /* Register variable[8]: Result */
     variable[8] = CALL_static_type___MMType___local_class(variable[8])(variable[8]) /*MMType::local_class*/;
+    /* Register variable[8]: Result */
     variable[8] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[8])(variable[8],  variable[5] /*ee*/) /*MMLocalClass::select_method*/;
     variable[7] = variable[8];
-    variable[9] = CALL_compiling_methods___MMMethod___compile_call( variable[7] /*eqp*/)( variable[7] /*eqp*/,  variable[1] /*v*/,  variable[2] /*cargs*/) /*MMMethod::compile_call*/;
+    /* Register variable[8]: Local variable */
+    /* Register variable[9]: Result */
+    variable[9] = CALL_compiling_methods___MMMethod___compile_expr_call( variable[7] /*eqp*/)( variable[7] /*eqp*/,  variable[1] /*v*/,  variable[2] /*cargs*/) /*MMMethod::compile_expr_call*/;
     variable[8] = variable[9];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-    variable[12] =  variable[8] /*eqcall*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_84 != NIT_NULL) variable[10] = once_value_84;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(!UNTAG_Bool("), TAG_Int(21)) /*new String*/;
+      once_value_84 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    variable[10] =  variable[8] /*eqcall*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_85 != NIT_NULL) variable[10] = once_value_85;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+      once_value_85 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[9]: Result */
     variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
     variable[3] = variable[9];
-    goto return_label25;
+    goto return_label75;
   }
-  variable[7] = variable[0];
-  variable[7] = CALL_abstractmetamodel___MMLocalProperty___global(variable[7])(variable[7]) /*MMLocalProperty::global*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___global(variable[0])(variable[0]) /*MMLocalProperty::global*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[7])(variable[7]) /*MMGlobalProperty::is_init*/;
   if (UNTAG_Bool(variable[7])) { /*if*/
+    /* Register variable[7]: Result */
     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*/
+    /* Register variable[7]: Once String constant */
+    if (once_value_86 != NIT_NULL) variable[7] = once_value_86;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("init_table /*YYY*/"), TAG_Int(18)) /*new String*/;
+      once_value_86 = variable[7];
+    }
+    /* Register variable[7]: Result */
     CALL_abstract_collection___SimpleCollection___add( variable[2] /*cargs*/)( variable[2] /*cargs*/, variable[7]) /*AbstractArray::add*/;
   }
-  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
-  variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable[10] = variable[9];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-  variable[11] = variable[0];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-  variable[13] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
-  variable[14] = variable[13];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
-  variable[15] =  variable[2] /*cargs*/;
-  variable[16] =  TAG_Int(0);
-  variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-  variable[19] = variable[18];
-  if (UNTAG_Bool(variable[19])) { /* and */
-    variable[19] = variable[15];
-    variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-    variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-  }
-  variable[18] = variable[19];
-  if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[18] = variable[15];
-  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_label30;
-  return_label30: while(false);
-  variable[15] = variable[17];
-  variable[16] = variable[15];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+  /* Register variable[7]: Local variable */
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_87 != NIT_NULL) variable[9] = once_value_87;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_87 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_abstractmetamodel___MMLocalProperty___global(variable[0])(variable[0]) /*MMLocalProperty::global*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_base___MMGlobalProperty___meth_call(variable[9])(variable[9]) /*MMGlobalProperty::meth_call*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_88 != NIT_NULL) variable[9] = once_value_88;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_88 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Local variable */
+  variable[9] =  variable[2] /*cargs*/;
+  /* Register variable[10]: Local variable */
+  variable[10] =  TAG_Int(0);
+  /* Register variable[11]: Method return value and escape marker */
+  /* Register variable[12]: Result */
+  variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  /* Ensure var variable[12]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[12])) { /* and */
+    /* Register variable[12]: Result */
+    variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+    /* Register variable[12]: Result */
+    variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+  }
+  /* Register variable[12]: Result */
+  if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[12]: Result */
+  variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+  /* Register variable[12]: Result */
+  variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+  variable[11] = variable[12];
+  goto return_label89;
+  return_label89: while(false);
+  /* Register variable[9]: Result */
+  variable[9] = variable[11];
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_90 != NIT_NULL) variable[9] = once_value_90;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_90 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
   variable[7] = variable[8];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-  variable[12] =  variable[7] /*m*/;
-  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];
-  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] = CALL_string___Collection___join( variable[2] /*cargs*/)( variable[2] /*cargs*/, variable[15]) /*Collection::join*/;
-  variable[16] = variable[15];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
-  variable[19] = variable[0];
-  variable[19] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[19])(variable[19]) /*MMLocalProperty::local_class*/;
-  variable[20] = variable[19];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[22]) /*AbstractArray::add*/;
-  variable[23] = variable[0];
-  variable[23] = CALL_abstractmetamodel___MMLocalProperty___name(variable[23])(variable[23]) /*MMLocalProperty::name*/;
-  variable[24] = variable[23];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[26]) /*AbstractArray::add*/;
+  /* Register variable[8]: Local variable */
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_91 != NIT_NULL) variable[10] = once_value_91;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_91 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[7] /*m*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_92 != NIT_NULL) variable[10] = once_value_92;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_92 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_93 != NIT_NULL) variable[10] = once_value_93;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_93 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Register variable[10]: Result */
+  variable[10] = CALL_string___Collection___join( variable[2] /*cargs*/)( variable[2] /*cargs*/, variable[10]) /*Collection::join*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_94 != NIT_NULL) variable[10] = once_value_94;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(") /*"), TAG_Int(4)) /*new String*/;
+    once_value_94 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[0])(variable[0]) /*MMLocalProperty::local_class*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_95 != NIT_NULL) variable[10] = once_value_95;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
+    once_value_95 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_96 != NIT_NULL) variable[10] = once_value_96;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_96 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
   variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
   variable[8] = variable[9];
-  variable[9] = variable[0];
-  variable[9] = CALL_abstractmetamodel___MMLocalProperty___name(variable[9])(variable[9]) /*MMLocalProperty::name*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+  /* Register variable[9]: Result */
   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_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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-    variable[12] =  variable[8] /*vcall*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_97 != NIT_NULL) variable[10] = once_value_97;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString("UNTAG_Bool("), TAG_Int(11)) /*new String*/;
+      once_value_97 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    variable[10] =  variable[8] /*vcall*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_98 != NIT_NULL) variable[10] = once_value_98;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+      once_value_98 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[9]: Result */
     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;
+    /* Register variable[9]: Local variable */
+    /* Register variable[10]: Once expression result */
+    if (once_bool_99) variable[10] = once_value_99;
     else {
-      variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
+      /* Register variable[10]: Once String constant */
+      if (once_value_100 != NIT_NULL) variable[10] = once_value_100;
+      else {
+        variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)) /*new String*/;
+        once_value_100 = variable[10];
+      }
+      /* Register variable[10]: Result */
+      /* Register variable[10]: Result */
       variable[10] = CALL_symbol___String___to_symbol(variable[10])(variable[10]) /*String::to_symbol*/;
-      once_value_31 = variable[10];
-      once_bool_31 = true;
+      once_value_99 = variable[10];
+      once_bool_99 = true;
     }
+    /* Register variable[10]: Result */
     variable[9] = variable[10];
+    /* Register variable[10]: Result */
     variable[10] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[4] /*i*/)( variable[4] /*i*/) /*MMLocalProperty::local_class*/;
+    /* Register variable[10]: Result */
     variable[10] = CALL_abstractmetamodel___MMLocalClass___name(variable[10])(variable[10]) /*MMLocalClass::name*/;
+    /* Register variable[10]: Result */
     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_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];
-      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
-      variable[13] =  variable[7] /*m*/;
-      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];
-      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];
-      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];
-      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)));
-      variable[24] = variable[23];
-      if (UNTAG_Bool(variable[24])) { /* and */
-        variable[24] = variable[20];
-        variable[24] = ATTR_array___AbstractArray____length(variable[24]) /*AbstractArray::_length*/;
-        variable[24] = TAG_Bool(UNTAG_Int( variable[21] /*index*/)<UNTAG_Int(variable[24]));
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(11)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+      /* Register variable[11]: Once String constant */
+      if (once_value_101 != NIT_NULL) variable[11] = once_value_101;
+      else {
+        variable[11] = NEW_String_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)) /*new String*/;
+        once_value_101 = variable[11];
+      }
+      /* Register variable[11]: Result */
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      variable[11] =  variable[7] /*m*/ /* Ensure var: super-string element*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[11]: Once String constant */
+      if (once_value_102 != NIT_NULL) variable[11] = once_value_102;
+      else {
+        variable[11] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)) /*new String*/;
+        once_value_102 = variable[11];
+      }
+      /* Register variable[11]: Result */
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[11]: Result */
+      variable[11] = CALL_compiling_base___MMLocalProperty___cname( variable[4] /*i*/)( variable[4] /*i*/) /*MMLocalProperty::cname*/;
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[11]: Once String constant */
+      if (once_value_103 != NIT_NULL) variable[11] = once_value_103;
+      else {
+        variable[11] = NEW_String_string___String___with_native(BOX_NativeString(")?(IS_EQUAL_NN("), TAG_Int(15)) /*new String*/;
+        once_value_103 = variable[11];
+      }
+      /* Register variable[11]: Result */
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[11]: Local variable */
+      variable[11] =  variable[2] /*cargs*/;
+      /* Register variable[12]: Local variable */
+      variable[12] =  TAG_Int(0);
+      /* Register variable[13]: Method return value and escape marker */
+      /* Register variable[14]: Result */
+      variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      /* Ensure var variable[14]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[14])) { /* and */
+        /* Register variable[14]: Result */
+        variable[14] = ATTR_array___AbstractArrayRead____length(variable[11]) /*AbstractArrayRead::_length*/;
+        /* Register variable[14]: Result */
+        variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[14]));
+      }
+      /* Register variable[14]: Result */
+      if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[14]: Result */
+      variable[14] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
+      /* Register variable[14]: Result */
+      variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
+      variable[13] = variable[14];
+      goto return_label104;
+      return_label104: while(false);
+      /* Register variable[11]: Result */
+      variable[11] = variable[13];
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[11]: Once String constant */
+      if (once_value_105 != NIT_NULL) variable[11] = once_value_105;
+      else {
+        variable[11] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)) /*new String*/;
+        once_value_105 = variable[11];
+      }
+      /* Register variable[11]: Result */
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[11]: Local variable */
+      variable[11] =  variable[2] /*cargs*/;
+      /* Register variable[12]: Local variable */
+      variable[12] =  TAG_Int(1);
+      /* Register variable[13]: Method return value and escape marker */
+      /* Register variable[14]: Result */
+      variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      /* Ensure var variable[14]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[14])) { /* and */
+        /* Register variable[14]: Result */
+        variable[14] = ATTR_array___AbstractArrayRead____length(variable[11]) /*AbstractArrayRead::_length*/;
+        /* Register variable[14]: Result */
+        variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[14]));
+      }
+      /* Register variable[14]: Result */
+      if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[14]: Result */
+      variable[14] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
+      /* Register variable[14]: Result */
+      variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
+      variable[13] = variable[14];
+      goto return_label106;
+      return_label106: while(false);
+      /* Register variable[11]: Result */
+      variable[11] = variable[13];
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[11]: Once String constant */
+      if (once_value_107 != NIT_NULL) variable[11] = once_value_107;
+      else {
+        variable[11] = NEW_String_string___String___with_native(BOX_NativeString(")):("), TAG_Int(4)) /*new String*/;
+        once_value_107 = variable[11];
       }
-      variable[23] = variable[24];
-      if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[23] = variable[20];
-      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_label32;
-      return_label32: while(false);
-      variable[20] = variable[22];
-      variable[21] = variable[20];
-      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];
-      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)));
-      variable[28] = variable[27];
-      if (UNTAG_Bool(variable[28])) { /* and */
-        variable[28] = variable[24];
-        variable[28] = ATTR_array___AbstractArray____length(variable[28]) /*AbstractArray::_length*/;
-        variable[28] = TAG_Bool(UNTAG_Int( variable[25] /*index*/)<UNTAG_Int(variable[28]));
+      /* Register variable[11]: Result */
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      variable[11] =  variable[8] /*vcall*/ /* Ensure var: super-string element*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[11]: Once String constant */
+      if (once_value_108 != NIT_NULL) variable[11] = once_value_108;
+      else {
+        variable[11] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+        once_value_108 = variable[11];
       }
-      variable[27] = variable[28];
-      if (!UNTAG_Bool(variable[27])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[27] = variable[24];
-      variable[27] = ATTR_array___Array____items(variable[27]) /*Array::_items*/;
-      variable[27] = UNBOX_NativeArray(variable[27])[UNTAG_Int( variable[25] /*index*/)];
-      variable[26] = variable[27];
-      goto return_label33;
-      return_label33: while(false);
-      variable[24] = variable[26];
-      variable[25] = variable[24];
-      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];
-      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[27]) /*AbstractArray::add*/;
-      variable[28] =  variable[8] /*vcall*/;
-      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];
-      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[30]) /*AbstractArray::add*/;
+      /* Register variable[11]: Result */
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[10]: Result */
       variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
       variable[8] = variable[10] /*vcall=*/;
     }
-    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];
-    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];
-    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];
-    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)));
-    variable[21] = variable[20];
-    if (UNTAG_Bool(variable[21])) { /* and */
-      variable[21] = variable[17];
-      variable[21] = ATTR_array___AbstractArray____length(variable[21]) /*AbstractArray::_length*/;
-      variable[21] = TAG_Bool(UNTAG_Int( variable[18] /*index*/)<UNTAG_Int(variable[21]));
-    }
-    variable[20] = variable[21];
-    if (!UNTAG_Bool(variable[20])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[20] = variable[17];
-    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_label34;
-    return_label34: while(false);
-    variable[17] = variable[19];
-    variable[18] = variable[17];
-    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];
-    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];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[24]) /*AbstractArray::add*/;
-    variable[25] =  variable[8] /*vcall*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[27]) /*AbstractArray::add*/;
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[11]: Once String constant */
+    if (once_value_109 != NIT_NULL) variable[11] = once_value_109;
+    else {
+      variable[11] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)) /*new String*/;
+      once_value_109 = variable[11];
+    }
+    /* Register variable[11]: Result */
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Result */
+    variable[11] = CALL_abstract_collection___Collection___first( variable[2] /*cargs*/)( variable[2] /*cargs*/) /*IndexedCollectionRead::first*/;
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Once String constant */
+    if (once_value_110 != NIT_NULL) variable[11] = once_value_110;
+    else {
+      variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" == "), TAG_Int(4)) /*new String*/;
+      once_value_110 = variable[11];
+    }
+    /* Register variable[11]: Result */
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Local variable */
+    variable[11] =  variable[2] /*cargs*/;
+    /* Register variable[12]: Local variable */
+    variable[12] =  TAG_Int(1);
+    /* Register variable[13]: Method return value and escape marker */
+    /* Register variable[14]: Result */
+    variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[14]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[14])) { /* and */
+      /* Register variable[14]: Result */
+      variable[14] = ATTR_array___AbstractArrayRead____length(variable[11]) /*AbstractArrayRead::_length*/;
+      /* Register variable[14]: Result */
+      variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[14]));
+    }
+    /* Register variable[14]: Result */
+    if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[14]: Result */
+    variable[14] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
+    /* Register variable[14]: Result */
+    variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
+    variable[13] = variable[14];
+    goto return_label111;
+    return_label111: while(false);
+    /* Register variable[11]: Result */
+    variable[11] = variable[13];
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Once String constant */
+    if (once_value_112 != NIT_NULL) variable[11] = once_value_112;
+    else {
+      variable[11] = NEW_String_string___String___with_native(BOX_NativeString(") || (("), TAG_Int(7)) /*new String*/;
+      once_value_112 = variable[11];
+    }
+    /* Register variable[11]: Result */
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Result */
+    variable[11] = CALL_abstract_collection___Collection___first( variable[2] /*cargs*/)( variable[2] /*cargs*/) /*IndexedCollectionRead::first*/;
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Once String constant */
+    if (once_value_113 != NIT_NULL) variable[11] = once_value_113;
+    else {
+      variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" != NIT_NULL) && "), TAG_Int(17)) /*new String*/;
+      once_value_113 = variable[11];
+    }
+    /* Register variable[11]: Result */
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    variable[11] =  variable[8] /*vcall*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Once String constant */
+    if (once_value_114 != NIT_NULL) variable[11] = once_value_114;
+    else {
+      variable[11] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+      once_value_114 = variable[11];
+    }
+    /* Register variable[11]: Result */
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[10]: Result */
     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] = CALL_static_type___MMLocalProperty___signature(variable[9])(variable[9]) /*MMLocalProperty::signature*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[9]: Result */
   variable[9] = CALL_static_type___MMSignature___return_type(variable[9])(variable[9]) /*MMSignature::return_type*/;
+  /* Register variable[9]: Result */
   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;
+    goto return_label75;
   } else { /*if*/
-    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
+    /* Register variable[9]: Once String constant */
+    if (once_value_115 != NIT_NULL) variable[9] = once_value_115;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_115 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Register variable[9]: Result */
     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;
+    goto return_label75;
   }
-  return_label25: while(false);
+  return_label75: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
-val_t compiling_methods___MMMethod___compile_constructor_call(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 323, LOCATE_compiling_methods___MMMethod___compile_constructor_call};
-  val_t variable[27];
-  void **closurevariable = NULL;
+val_t compiling_methods___MMMethod___compile_call_and_closures(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, NULL, 375, LOCATE_compiling_methods___MMMethod___compile_call_and_closures};
+  static val_t once_value_117 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_121 = NIT_NULL; /* Once value for string variable[13]*/
+    static val_t once_value_123 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_125 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_126 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_128 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_129 = NIT_NULL; /* Once value for string variable[15]*/
+      static val_t once_value_130 = NIT_NULL; /* Once value for string variable[15]*/
+      static val_t once_value_132 = NIT_NULL; /* Once value for string variable[15]*/
+      static val_t once_value_134 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_135 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_136 = NIT_NULL; /* Once value for string variable[15]*/
+      static val_t once_value_137 = NIT_NULL; /* Once value for string variable[15]*/
+      static val_t once_value_138 = NIT_NULL; /* Once value for string variable[15]*/
+      static val_t once_value_140 = NIT_NULL; /* Once value for string variable[15]*/
+      static val_t once_value_141 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_142 = NIT_NULL; /* Once value for string variable[14]*/
+  val_t variable[19];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Local variable */
   variable[3] =  param2;
-  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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
-  variable[9] =  variable[5] /*recv*/;
-  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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
-  variable[16] = variable[0];
-  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];
-  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];
-  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] = CALL_string___Collection___join( variable[3] /*cargs*/)( variable[3] /*cargs*/, variable[20]) /*Collection::join*/;
-  variable[21] = variable[20];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[23]) /*AbstractArray::add*/;
-  variable[24] =  variable[2] /*recvtype*/;
-  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];
-  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);
-  tracehead = trace.prev;
-  return variable[4];
-}
-val_t compiling_methods___MMMethod___compile_super_call(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 331, LOCATE_compiling_methods___MMMethod___compile_super_call};
-  val_t variable[24];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  variable[1] =  param0;
-  variable[2] =  param1;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[8] = variable[0];
-  variable[8] = CALL_compiling_base___MMLocalProperty___super_meth_call(variable[8])(variable[8]) /*MMLocalProperty::super_meth_call*/;
-  variable[9] = variable[8];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
-  variable[10] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
-  variable[11] = variable[10];
-  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)));
-  variable[16] = variable[15];
-  if (UNTAG_Bool(variable[16])) { /* and */
-    variable[16] = variable[12];
-    variable[16] = ATTR_array___AbstractArray____length(variable[16]) /*AbstractArray::_length*/;
-    variable[16] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[16]));
-  }
-  variable[15] = variable[16];
-  if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[15] = variable[12];
-  variable[15] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
-  variable[15] = UNBOX_NativeArray(variable[15])[UNTAG_Int( variable[13] /*index*/)];
-  variable[14] = variable[15];
-  goto return_label37;
-  return_label37: while(false);
-  variable[12] = variable[14];
-  variable[13] = variable[12];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
-  variable[14] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
-  variable[15] = variable[14];
-  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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
-  variable[9] =  variable[4] /*m*/;
-  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];
-  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] = CALL_string___Collection___join( variable[2] /*cargs*/)( variable[2] /*cargs*/, variable[12]) /*Collection::join*/;
-  variable[13] = variable[12];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
-  variable[16] = variable[0];
-  variable[16] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[16])(variable[16]) /*MMLocalProperty::local_class*/;
-  variable[17] = variable[16];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[19]) /*AbstractArray::add*/;
-  variable[20] = variable[0];
-  variable[20] = CALL_abstractmetamodel___MMLocalProperty___name(variable[20])(variable[20]) /*MMLocalProperty::name*/;
-  variable[21] = variable[20];
-  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];
-  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;
-  return_label36: while(false);
-  tracehead = trace.prev;
-  return variable[3];
-}
-val_t compiling_methods___MMMethod___closure_cname(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 339, LOCATE_compiling_methods___MMMethod___closure_cname};
-  val_t variable[13];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  variable[1] =  param0;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
-  variable[6] = variable[0];
-  variable[6] = CALL_compiling_base___MMLocalProperty___cname(variable[6])(variable[6]) /*MMLocalProperty::cname*/;
-  variable[7] = variable[6];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
-  variable[10] =  variable[1] /*i*/;
-  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];
-  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);
-  tracehead = trace.prev;
-  return variable[2];
-}
-val_t compiling_methods___MMAttribute___compile_access(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 347, LOCATE_compiling_methods___MMAttribute___compile_access};
-  val_t variable[22];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  variable[1] =  param0;
-  variable[2] =  param1;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-  variable[7] = variable[0];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
-  variable[11] =  variable[2] /*recv*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
-  variable[14] = variable[0];
-  variable[14] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[14])(variable[14]) /*MMLocalProperty::local_class*/;
-  variable[15] = variable[14];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[17]) /*AbstractArray::add*/;
-  variable[18] = variable[0];
-  variable[18] = CALL_abstractmetamodel___MMLocalProperty___name(variable[18])(variable[18]) /*MMLocalProperty::name*/;
-  variable[19] = variable[18];
-  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];
-  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);
-  tracehead = trace.prev;
-  return variable[3];
-}
-void compiling_methods___MMLocalProperty___compile_property_to_c(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 356, LOCATE_compiling_methods___MMLocalProperty___compile_property_to_c};
-  val_t variable[3];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  variable[1] =  param0;
-  return_label40: while(false);
-  tracehead = trace.prev;
-  return;
-}
-void compiling_methods___MMSrcMethod___compile_property_to_c(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 408, LOCATE_compiling_methods___MMSrcMethod___compile_property_to_c};
-  val_t variable[18];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  variable[1] =  param0;
-  variable[3] = NEW_CFunctionContext_compiling_methods___CFunctionContext___init( variable[1] /*v*/); /*new CFunctionContext*/
-  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*/
-  CALL_abstract_collection___SimpleCollection___add( variable[3] /*args*/)( variable[3] /*args*/, variable[4]) /*AbstractArray::add*/;
-  variable[4] = variable[0];
-  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] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
-  while (true) { /*for*/
-    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
-    if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
-    variable[6] = variable[5];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
-    variable[10] =  variable[6] /*i*/;
-    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];
-    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);
-    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Local variable */
+  variable[5] =  NIT_NULL /*null*/;
+  /* Register variable[6]: Local variable */
+  variable[6] =  TAG_Int(0);
+  /* Register variable[7]: Result */
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*clos_defs*/ ==  NIT_NULL /*null*/) || (( variable[3] /*clos_defs*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*clos_defs*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*clos_defs*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*clos_defs*/)( variable[3] /*clos_defs*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable[7])) { /*if*/
+    /* Register variable[7]: Result */
+    variable[7] = CALL_abstract_collection___Collection___length( variable[3] /*clos_defs*/)( variable[3] /*clos_defs*/) /*AbstractArrayRead::length*/;
+    variable[6] = variable[7] /*arity=*/;
   }
-  break_42: while(0);
-  variable[4] = variable[0];
-  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] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
+  /* Register variable[7]: Local variable */
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___NitMethodContext___break_value(variable[8])(variable[8]) /*NitMethodContext::break_value*/;
+  variable[7] = variable[8];
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_117 != NIT_NULL) variable[9] = once_value_117;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Closure return value and escape marker"), TAG_Int(38)) /*new String*/;
+    once_value_117 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CFunctionContext___get_var(variable[8])(variable[8], variable[9]) /*CFunctionContext::get_var*/;
+  variable[5] = variable[8] /*ve=*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___break_value__eq(variable[8])(variable[8],  variable[5] /*ve*/) /*NitMethodContext::break_value=*/;
+  /* Register variable[8]: Local variable */
+  /* Register variable[9]: Result */
+  variable[9] = NEW_Array_array___Array___init() /*new Array[String]*/;
+  variable[8] = variable[9];
+  /* Register variable[9]: Local variable */
+  /* Register variable[10]: Result */
+  variable[10] = NEW_Array_array___Array___init() /*new Array[String]*/;
+  variable[9] = variable[10];
+  CALL_abstract_collection___SimpleCollection___add_all( variable[8] /*realcargs*/)( variable[8] /*realcargs*/,  variable[2] /*cargs*/) /*SimpleCollection::add_all*/;
+  /* Register variable[10]: Result */
+  variable[10] = NEW_Range_range___Range___without_last( TAG_Int(0),  variable[6] /*arity*/) /*new Range[Int]*/;
+  /* Register variable[10]: For iterator */
+  variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
-    if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
+    /* Register variable[11]: For 'is_ok' result */
+    variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable[11])) break; /*for*/
+    variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[12]: Local variable */
+    variable[12] = variable[11];
+    /* Register variable[13]: Local variable */
+    /* Register variable[14]: Local variable */
+    variable[14] =  variable[3] /*clos_defs*/;
+    /* Register variable[15]: Local variable */
+    variable[15] =  variable[12] /*i*/;
+    /* Register variable[16]: Method return value and escape marker */
+    /* Register variable[17]: Result */
+    variable[17] = TAG_Bool(UNTAG_Int( variable[15] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[17]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[17])) { /* and */
+      /* Register variable[17]: Result */
+      variable[17] = ATTR_array___AbstractArrayRead____length(variable[14]) /*AbstractArrayRead::_length*/;
+      /* Register variable[17]: Result */
+      variable[17] = TAG_Bool(UNTAG_Int( variable[15] /*index*/)<UNTAG_Int(variable[17]));
+    }
+    /* Register variable[17]: Result */
+    if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[17]: Result */
+    variable[17] = ATTR_array___Array____items(variable[14]) /*Array::_items*/;
+    /* Register variable[17]: Result */
+    variable[17] = UNBOX_NativeArray(variable[17])[UNTAG_Int( variable[15] /*index*/)];
+    variable[16] = variable[17];
+    goto return_label119;
+    return_label119: while(false);
+    /* Register variable[14]: Result */
+    variable[14] = variable[16];
+    /* Register variable[15]: Result */
+    variable[15] = CALL_compiling_methods___MMMethod___closure_cname(variable[0])(variable[0],  variable[12] /*i*/) /*MMMethod::closure_cname*/;
+    /* Register variable[14]: Result */
+    variable[14] = CALL_compiling_methods___PClosureDef___compile_closure(variable[14])(variable[14],  variable[1] /*v*/, variable[15]) /*PClosureDef::compile_closure*/;
+    variable[13] = variable[14];
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*closcns*/)( variable[9] /*closcns*/,  variable[13] /*cn*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*realcargs*/)( variable[8] /*realcargs*/,  variable[13] /*cn*/) /*AbstractArray::add*/;
+    continue_118: while(0);
+    CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
+  }
+  break_118: while(0);
+  /* Register variable[10]: Result */
+  variable[10] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_static_type___MMSignature___closures(variable[10])(variable[10]) /*MMSignature::closures*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_abstract_collection___Collection___length(variable[10])(variable[10]) /*AbstractArrayRead::length*/;
+  /* Register variable[10]: Result */
+  variable[10] = NEW_Range_range___Range___without_last( variable[6] /*arity*/, variable[10]) /*new Range[Int]*/;
+  /* Register variable[10]: For iterator */
+  variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*Range::iterator*/;
+  while (true) { /*for*/
+    /* Register variable[11]: For 'is_ok' result */
+    variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable[11])) break; /*for*/
+    variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[12]: Local variable */
+    variable[12] = variable[11];
+    /* Register variable[13]: Once String constant */
+    if (once_value_121 != NIT_NULL) variable[13] = once_value_121;
+    else {
+      variable[13] = NEW_String_string___String___with_native(BOX_NativeString("NULL"), TAG_Int(4)) /*new String*/;
+      once_value_121 = variable[13];
+    }
+    /* Register variable[13]: Result */
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*realcargs*/)( variable[8] /*realcargs*/, variable[13]) /*AbstractArray::add*/;
+    continue_120: while(0);
+    CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
+  }
+  break_120: while(0);
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___break_value__eq(variable[10])(variable[10],  variable[7] /*old_bv*/) /*NitMethodContext::break_value=*/;
+  /* Register variable[10]: Local variable */
+  /* Register variable[11]: Result */
+  variable[11] = CALL_compiling_methods___MMMethod___intern_compile_call(variable[0])(variable[0],  variable[1] /*v*/,  variable[8] /*realcargs*/) /*MMMethod::intern_compile_call*/;
+  variable[10] = variable[11];
+  /* Register variable[11]: Result */
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*e*/ ==  NIT_NULL /*null*/) || (( variable[10] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*e*/)( variable[10] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable[11])) { /*if*/
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*ve*/,  variable[10] /*e*/) /*CompilerVisitor::add_assignment*/;
+    variable[10] =  variable[5] /*ve*/ /*e=*/;
+  }
+  /* Register variable[11]: Result */
+  variable[11] = NEW_Range_range___Range___without_last( TAG_Int(0),  variable[6] /*arity*/) /*new Range[Int]*/;
+  /* Register variable[11]: For iterator */
+  variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
+  while (true) { /*for*/
+    /* Register variable[12]: For 'is_ok' result */
+    variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable[12])) break; /*for*/
+    variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[13]: Local variable */
+    variable[13] = variable[12];
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_123 != NIT_NULL) variable[15] = once_value_123;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)) /*new String*/;
+      once_value_123 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Local variable */
+    variable[15] =  variable[9] /*closcns*/;
+    /* Register variable[16]: Local variable */
+    variable[16] =  variable[13] /*i*/;
+    /* Register variable[17]: Method return value and escape marker */
+    /* Register variable[18]: Result */
+    variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[18]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[18])) { /* and */
+      /* Register variable[18]: Result */
+      variable[18] = ATTR_array___AbstractArrayRead____length(variable[15]) /*AbstractArrayRead::_length*/;
+      /* Register variable[18]: Result */
+      variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[18]));
+    }
+    /* Register variable[18]: Result */
+    if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[18]: Result */
+    variable[18] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
+    /* Register variable[18]: Result */
+    variable[18] = UNBOX_NativeArray(variable[18])[UNTAG_Int( variable[16] /*index*/)];
+    variable[17] = variable[18];
+    goto return_label124;
+    return_label124: while(false);
+    /* Register variable[15]: Result */
+    variable[15] = variable[17];
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_125 != NIT_NULL) variable[15] = once_value_125;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke != NULL) {"), TAG_Int(22)) /*new String*/;
+      once_value_125 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[14]: Result */
+    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]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_126 != NIT_NULL) variable[15] = once_value_126;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)) /*new String*/;
+      once_value_126 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Local variable */
+    variable[15] =  variable[9] /*closcns*/;
+    /* Register variable[16]: Local variable */
+    variable[16] =  variable[13] /*i*/;
+    /* Register variable[17]: Method return value and escape marker */
+    /* Register variable[18]: Result */
+    variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[18]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[18])) { /* and */
+      /* Register variable[18]: Result */
+      variable[18] = ATTR_array___AbstractArrayRead____length(variable[15]) /*AbstractArrayRead::_length*/;
+      /* Register variable[18]: Result */
+      variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[18]));
+    }
+    /* Register variable[18]: Result */
+    if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[18]: Result */
+    variable[18] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
+    /* Register variable[18]: Result */
+    variable[18] = UNBOX_NativeArray(variable[18])[UNTAG_Int( variable[16] /*index*/)];
+    variable[17] = variable[18];
+    goto return_label127;
+    return_label127: while(false);
+    /* Register variable[15]: Result */
+    variable[15] = variable[17];
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_128 != NIT_NULL) variable[15] = once_value_128;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke != &("), TAG_Int(17)) /*new String*/;
+      once_value_128 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    variable[15] =  variable[5] /*ve*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_129 != NIT_NULL) variable[15] = once_value_129;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(")) {"), TAG_Int(4)) /*new String*/;
+      once_value_129 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[14]: Result */
+    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*/;
+    /* Register variable[14]: Result */
+    variable[14] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    /* Register variable[14]: Result */
+    variable[14] = CALL_compiling_methods___CFunctionContext___closure(variable[14])(variable[14]) /*CFunctionContext::closure*/;
+    /* Register variable[15]: Result */
+    variable[15] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[14]: Result */
+    variable[14] = TAG_Bool((variable[14] == variable[15]) || ((variable[14] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[14])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[14],variable[15])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[14])(variable[14], variable[15]) /*Object::==*/)))));
+    if (UNTAG_Bool(variable[14])) { /*if*/
+      variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+      /* Register variable[15]: Once String constant */
+      if (once_value_130 != NIT_NULL) variable[15] = once_value_130;
+      else {
+        variable[15] = NEW_String_string___String___with_native(BOX_NativeString("closctx->has_broke = "), TAG_Int(21)) /*new String*/;
+        once_value_130 = variable[15];
+      }
+      /* Register variable[15]: Result */
+      /* Ensure var variable[15]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      /* Register variable[15]: Local variable */
+      variable[15] =  variable[9] /*closcns*/;
+      /* Register variable[16]: Local variable */
+      variable[16] =  variable[13] /*i*/;
+      /* Register variable[17]: Method return value and escape marker */
+      /* Register variable[18]: Result */
+      variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      /* Ensure var variable[18]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[18])) { /* and */
+        /* Register variable[18]: Result */
+        variable[18] = ATTR_array___AbstractArrayRead____length(variable[15]) /*AbstractArrayRead::_length*/;
+        /* Register variable[18]: Result */
+        variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[18]));
+      }
+      /* Register variable[18]: Result */
+      if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[18]: Result */
+      variable[18] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
+      /* Register variable[18]: Result */
+      variable[18] = UNBOX_NativeArray(variable[18])[UNTAG_Int( variable[16] /*index*/)];
+      variable[17] = variable[18];
+      goto return_label131;
+      return_label131: while(false);
+      /* Register variable[15]: Result */
+      variable[15] = variable[17];
+      /* Ensure var variable[15]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      /* Register variable[15]: Once String constant */
+      if (once_value_132 != NIT_NULL) variable[15] = once_value_132;
+      else {
+        variable[15] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke; closctx->broke_value = "), TAG_Int(36)) /*new String*/;
+        once_value_132 = variable[15];
+      }
+      /* Register variable[15]: Result */
+      /* Ensure var variable[15]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      /* Register variable[15]: Local variable */
+      variable[15] =  variable[9] /*closcns*/;
+      /* Register variable[16]: Local variable */
+      variable[16] =  variable[13] /*i*/;
+      /* Register variable[17]: Method return value and escape marker */
+      /* Register variable[18]: Result */
+      variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      /* Ensure var variable[18]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[18])) { /* and */
+        /* Register variable[18]: Result */
+        variable[18] = ATTR_array___AbstractArrayRead____length(variable[15]) /*AbstractArrayRead::_length*/;
+        /* Register variable[18]: Result */
+        variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[18]));
+      }
+      /* Register variable[18]: Result */
+      if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[18]: Result */
+      variable[18] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
+      /* Register variable[18]: Result */
+      variable[18] = UNBOX_NativeArray(variable[18])[UNTAG_Int( variable[16] /*index*/)];
+      variable[17] = variable[18];
+      goto return_label133;
+      return_label133: while(false);
+      /* Register variable[15]: Result */
+      variable[15] = variable[17];
+      /* Ensure var variable[15]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      /* Register variable[15]: Once String constant */
+      if (once_value_134 != NIT_NULL) variable[15] = once_value_134;
+      else {
+        variable[15] = NEW_String_string___String___with_native(BOX_NativeString("->broke_value;"), TAG_Int(14)) /*new String*/;
+        once_value_134 = variable[15];
+      }
+      /* Register variable[15]: Result */
+      /* Ensure var variable[15]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      /* Register variable[14]: Result */
+      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]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_135 != NIT_NULL) variable[15] = once_value_135;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)) /*new String*/;
+      once_value_135 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Result */
+    variable[15] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[15]: Result */
+    variable[15] = CALL_compiling_methods___NitMethodContext___return_label(variable[15])(variable[15]) /*NitMethodContext::return_label*/;
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_136 != NIT_NULL) variable[15] = once_value_136;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_136 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[14]: Result */
+    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*/;
+    /* Register variable[14]: Result */
+    variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*e*/ ==  NIT_NULL /*null*/) || (( variable[10] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*e*/)( variable[10] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable[14])) { /*if*/
+      variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+      /* Register variable[15]: Once String constant */
+      if (once_value_137 != NIT_NULL) variable[15] = once_value_137;
+      else {
+        variable[15] = NEW_String_string___String___with_native(BOX_NativeString("} else "), TAG_Int(7)) /*new String*/;
+        once_value_137 = variable[15];
+      }
+      /* Register variable[15]: Result */
+      /* Ensure var variable[15]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      variable[15] =  variable[5] /*ve*/ /* Ensure var: super-string element*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      /* Register variable[15]: Once String constant */
+      if (once_value_138 != NIT_NULL) variable[15] = once_value_138;
+      else {
+        variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" = "), TAG_Int(3)) /*new String*/;
+        once_value_138 = variable[15];
+      }
+      /* Register variable[15]: Result */
+      /* Ensure var variable[15]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      /* Register variable[15]: Local variable */
+      variable[15] =  variable[9] /*closcns*/;
+      /* Register variable[16]: Local variable */
+      variable[16] =  variable[13] /*i*/;
+      /* Register variable[17]: Method return value and escape marker */
+      /* Register variable[18]: Result */
+      variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      /* Ensure var variable[18]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[18])) { /* and */
+        /* Register variable[18]: Result */
+        variable[18] = ATTR_array___AbstractArrayRead____length(variable[15]) /*AbstractArrayRead::_length*/;
+        /* Register variable[18]: Result */
+        variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[18]));
+      }
+      /* Register variable[18]: Result */
+      if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[18]: Result */
+      variable[18] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
+      /* Register variable[18]: Result */
+      variable[18] = UNBOX_NativeArray(variable[18])[UNTAG_Int( variable[16] /*index*/)];
+      variable[17] = variable[18];
+      goto return_label139;
+      return_label139: while(false);
+      /* Register variable[15]: Result */
+      variable[15] = variable[17];
+      /* Ensure var variable[15]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      /* Register variable[15]: Once String constant */
+      if (once_value_140 != NIT_NULL) variable[15] = once_value_140;
+      else {
+        variable[15] = NEW_String_string___String___with_native(BOX_NativeString("->broke_value;"), TAG_Int(14)) /*new String*/;
+        once_value_140 = variable[15];
+      }
+      /* Register variable[15]: Result */
+      /* Ensure var variable[15]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+      /* Register variable[14]: Result */
+      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*/
+      /* Register variable[14]: Once String constant */
+      if (once_value_141 != NIT_NULL) variable[14] = once_value_141;
+      else {
+        variable[14] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+        once_value_141 = variable[14];
+      }
+      /* Register variable[14]: Result */
+      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*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_142 != NIT_NULL) variable[14] = once_value_142;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+      once_value_142 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+    continue_122: while(0);
+    CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
+  }
+  break_122: while(0);
+  variable[4] =  variable[10] /*e*/;
+  goto return_label116;
+  return_label116: while(false);
+  tracehead = trace.prev;
+  return variable[4];
+}
+val_t compiling_methods___MMMethod___compile_constructor_call(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, NULL, 435, LOCATE_compiling_methods___MMMethod___compile_constructor_call};
+  static val_t once_value_144 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_145 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_146 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_147 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_148 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_149 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Local variable */
+  variable[3] =  param2;
+  /* Register variable[4]: Method return value and escape marker */
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_144 != NIT_NULL) variable[6] = once_value_144;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("NEW_"), TAG_Int(4)) /*new String*/;
+    once_value_144 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_static_type___MMType___local_class( variable[2] /*recvtype*/)( variable[2] /*recvtype*/) /*MMType::local_class*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_145 != NIT_NULL) variable[6] = once_value_145;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
+    once_value_145 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[0])(variable[0]) /*MMLocalProperty::global*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[6])(variable[6]) /*MMGlobalProperty::intro*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_base___MMLocalProperty___cname(variable[6])(variable[6]) /*MMLocalProperty::cname*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_146 != NIT_NULL) variable[6] = once_value_146;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_146 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_147 != NIT_NULL) variable[6] = once_value_147;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_147 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_string___Collection___join( variable[3] /*cargs*/)( variable[3] /*cargs*/, variable[6]) /*Collection::join*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_148 != NIT_NULL) variable[6] = once_value_148;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(") /*new "), TAG_Int(8)) /*new String*/;
+    once_value_148 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[2] /*recvtype*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_149 != NIT_NULL) variable[6] = once_value_149;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_149 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  variable[4] = variable[5];
+  goto return_label143;
+  return_label143: while(false);
+  tracehead = trace.prev;
+  return variable[4];
+}
+val_t compiling_methods___MMMethod___compile_super_call(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 441, LOCATE_compiling_methods___MMMethod___compile_super_call};
+  static val_t once_value_151 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_152 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_154 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_155 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_156 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_157 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_158 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_159 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_160 = NIT_NULL; /* Once value for string variable[7]*/
+  val_t variable[10];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Local variable */
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_151 != NIT_NULL) variable[6] = once_value_151;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_151 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_base___MMLocalProperty___super_meth_call(variable[0])(variable[0]) /*MMLocalProperty::super_meth_call*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_152 != NIT_NULL) variable[6] = once_value_152;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_152 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Local variable */
+  variable[6] =  variable[2] /*cargs*/;
+  /* Register variable[7]: Local variable */
+  variable[7] =  TAG_Int(0);
+  /* Register variable[8]: Method return value and escape marker */
+  /* Register variable[9]: Result */
+  variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  /* Ensure var variable[9]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[9])) { /* and */
+    /* Register variable[9]: Result */
+    variable[9] = ATTR_array___AbstractArrayRead____length(variable[6]) /*AbstractArrayRead::_length*/;
+    /* Register variable[9]: Result */
+    variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)<UNTAG_Int(variable[9]));
+  }
+  /* Register variable[9]: Result */
+  if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[9]: Result */
+  variable[9] = ATTR_array___Array____items(variable[6]) /*Array::_items*/;
+  /* Register variable[9]: Result */
+  variable[9] = UNBOX_NativeArray(variable[9])[UNTAG_Int( variable[7] /*index*/)];
+  variable[8] = variable[9];
+  goto return_label153;
+  return_label153: while(false);
+  /* Register variable[6]: Result */
+  variable[6] = variable[8];
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_154 != NIT_NULL) variable[6] = once_value_154;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_154 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  variable[4] = variable[5];
+  /* Register variable[5]: Local variable */
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_155 != NIT_NULL) variable[7] = once_value_155;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_155 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[7] =  variable[4] /*m*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_156 != NIT_NULL) variable[7] = once_value_156;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_156 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_157 != NIT_NULL) variable[7] = once_value_157;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_157 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Register variable[7]: Result */
+  variable[7] = CALL_string___Collection___join( variable[2] /*cargs*/)( variable[2] /*cargs*/, variable[7]) /*Collection::join*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_158 != NIT_NULL) variable[7] = once_value_158;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(") /*super "), TAG_Int(10)) /*new String*/;
+    once_value_158 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[0])(variable[0]) /*MMLocalProperty::local_class*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_159 != NIT_NULL) variable[7] = once_value_159;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
+    once_value_159 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_160 != NIT_NULL) variable[7] = once_value_160;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_160 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  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_label150;
+  return_label150: while(false);
+  tracehead = trace.prev;
+  return variable[3];
+}
+val_t compiling_methods___MMMethod___closure_cname(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 449, LOCATE_compiling_methods___MMMethod___closure_cname};
+  static val_t once_value_162 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_163 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_164 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_162 != NIT_NULL) variable[4] = once_value_162;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("FWBT_"), TAG_Int(5)) /*new String*/;
+    once_value_162 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_base___MMLocalProperty___cname(variable[0])(variable[0]) /*MMLocalProperty::cname*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_163 != NIT_NULL) variable[4] = once_value_163;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
+    once_value_163 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  variable[4] =  variable[1] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_164 != NIT_NULL) variable[4] = once_value_164;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_164 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  variable[2] = variable[3];
+  goto return_label161;
+  return_label161: while(false);
+  tracehead = trace.prev;
+  return variable[2];
+}
+val_t compiling_methods___MMAttribute___compile_isset(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, NULL, 457, LOCATE_compiling_methods___MMAttribute___compile_isset};
+  static val_t once_value_166 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_167 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_168 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_169 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_170 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Local variable */
+  variable[3] =  param2;
+  /* Register variable[4]: Method return value and escape marker */
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_166 != NIT_NULL) variable[6] = once_value_166;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool("), TAG_Int(9)) /*new String*/;
+    once_value_166 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[0])(variable[0]) /*MMLocalProperty::global*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[6])(variable[6]) /*MMGlobalProperty::attr_access*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_167 != NIT_NULL) variable[6] = once_value_167;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_167 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*recv*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_168 != NIT_NULL) variable[6] = once_value_168;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(")!=NIT_NULL) /* isset "), TAG_Int(22)) /*new String*/;
+    once_value_168 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[0])(variable[0]) /*MMLocalProperty::local_class*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_169 != NIT_NULL) variable[6] = once_value_169;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
+    once_value_169 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_170 != NIT_NULL) variable[6] = once_value_170;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_170 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  variable[4] = variable[5];
+  goto return_label165;
+  return_label165: while(false);
+  tracehead = trace.prev;
+  return variable[4];
+}
+val_t compiling_methods___MMAttribute___compile_read_access(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, NULL, 463, LOCATE_compiling_methods___MMAttribute___compile_read_access};
+  static val_t once_value_172 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_173 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_174 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_175 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_176 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_177 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_178 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_179 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_180 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_181 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_182 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_183 = NIT_NULL; /* Once value for string variable[7]*/
+  val_t variable[8];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Local variable */
+  variable[3] =  param2;
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Local variable */
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_172 != NIT_NULL) variable[7] = once_value_172;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_172 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___global(variable[0])(variable[0]) /*MMLocalProperty::global*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[7])(variable[7]) /*MMGlobalProperty::attr_access*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_173 != NIT_NULL) variable[7] = once_value_173;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_173 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[7] =  variable[3] /*recv*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_174 != NIT_NULL) variable[7] = once_value_174;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(") /*"), TAG_Int(4)) /*new String*/;
+    once_value_174 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[0])(variable[0]) /*MMLocalProperty::local_class*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_175 != NIT_NULL) variable[7] = once_value_175;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
+    once_value_175 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_176 != NIT_NULL) variable[7] = once_value_176;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_176 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  variable[5] = variable[6];
+  /* Register variable[6]: Result */
+  variable[6] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_static_type___MMSignature___return_type(variable[6])(variable[6]) /*MMSignature::return_type*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_static_type___MMType___is_nullable(variable[6])(variable[6]) /*MMType::is_nullable*/;
+  variable[6] =  TAG_Bool(!UNTAG_Bool(variable[6])) /* Ensure var: Left 'and' operand*/;
+  if (UNTAG_Bool(variable[6])) { /* and */
+    /* Register variable[6]: Result */
+    variable[6] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_mmloader___ToolContext___opt_warn(variable[6])(variable[6]) /*ToolContext::opt_warn*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_opts___Option___value(variable[6])(variable[6]) /*Option::value*/;
+    /* Register variable[6]: Result */
+    variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(0)));
+  }
+  /* Register variable[6]: Result */
+  if (UNTAG_Bool(variable[6])) { /*if*/
+    variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[7]: Once String constant */
+    if (once_value_177 != NIT_NULL) variable[7] = once_value_177;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_177 = variable[7];
+    }
+    /* Register variable[7]: Result */
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    /* Register variable[7]: Result */
+    variable[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[0])(variable[0]) /*MMLocalProperty::local_class*/;
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[7]: Once String constant */
+    if (once_value_178 != NIT_NULL) variable[7] = once_value_178;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
+      once_value_178 = variable[7];
+    }
+    /* Register variable[7]: Result */
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    /* Register variable[7]: Result */
+    variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[7]: Once String constant */
+    if (once_value_179 != NIT_NULL) variable[7] = once_value_179;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_179 = variable[7];
+    }
+    /* Register variable[7]: Result */
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*res*/, variable[6]) /*CompilerVisitor::ensure_var*/;
+    variable[5] = variable[6] /*res=*/;
+    variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[7]: Once String constant */
+    if (once_value_180 != NIT_NULL) variable[7] = once_value_180;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)) /*new String*/;
+      once_value_180 = variable[7];
+    }
+    /* Register variable[7]: Result */
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    variable[7] =  variable[5] /*res*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    /* Register variable[7]: Once String constant */
+    if (once_value_181 != NIT_NULL) variable[7] = once_value_181;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" == NIT_NULL) { fprintf(stderr, \"Uninitialized attribute %s\", \""), TAG_Int(63)) /*new String*/;
+      once_value_181 = variable[7];
+    }
+    /* Register variable[7]: Result */
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    /* Register variable[7]: Result */
+    variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[7]: Once String constant */
+    if (once_value_182 != NIT_NULL) variable[7] = once_value_182;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("\"); "), TAG_Int(4)) /*new String*/;
+      once_value_182 = variable[7];
+    }
+    /* Register variable[7]: Result */
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    /* Register variable[7]: Result */
+    variable[7] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/,  variable[2] /*n*/) /*CompilerVisitor::printf_locate_error*/;
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    /* Register variable[7]: Once String constant */
+    if (once_value_183 != NIT_NULL) variable[7] = once_value_183;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" } /* implicit isset */;"), TAG_Int(24)) /*new String*/;
+      once_value_183 = variable[7];
+    }
+    /* Register variable[7]: Result */
+    /* Ensure var variable[7]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    /* Register variable[6]: Result */
+    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] /*res*/;
+  goto return_label171;
+  return_label171: while(false);
+  tracehead = trace.prev;
+  return variable[4];
+}
+void compiling_methods___MMAttribute___compile_write_access(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, NULL, 474, LOCATE_compiling_methods___MMAttribute___compile_write_access};
+  static val_t once_value_185 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_186 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_187 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_188 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_189 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_190 = NIT_NULL; /* Once value for string variable[7]*/
+  val_t variable[8];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Local variable */
+  variable[3] =  param2;
+  /* Register variable[4]: Local variable */
+  variable[4] =  param3;
+  /* Register variable[5]: Method return value and escape marker */
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(11)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_185 != NIT_NULL) variable[7] = once_value_185;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_185 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___global(variable[0])(variable[0]) /*MMLocalProperty::global*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[7])(variable[7]) /*MMGlobalProperty::attr_access*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_186 != NIT_NULL) variable[7] = once_value_186;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_186 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[7] =  variable[3] /*recv*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_187 != NIT_NULL) variable[7] = once_value_187;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(") /*"), TAG_Int(4)) /*new String*/;
+    once_value_187 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[0])(variable[0]) /*MMLocalProperty::local_class*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_188 != NIT_NULL) variable[7] = once_value_188;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
+    once_value_188 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[0])(variable[0]) /*MMLocalProperty::name*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_189 != NIT_NULL) variable[7] = once_value_189;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("*/ = "), TAG_Int(5)) /*new String*/;
+    once_value_189 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[7] =  variable[4] /*value*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_190 != NIT_NULL) variable[7] = once_value_190;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_190 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  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_label184: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___MMLocalProperty___compile_property_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 482, LOCATE_compiling_methods___MMLocalProperty___compile_property_to_c};
+  val_t variable[3];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  return_label191: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void compiling_methods___MMSrcMethod___compile_property_to_c(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 532, LOCATE_compiling_methods___MMSrcMethod___compile_property_to_c};
+  static val_t once_value_193 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_195 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_196 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_198 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_199 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_200 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_201 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_202 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_203 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_204 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_205 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_206 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_207 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_208 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_209 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_210 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_211 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_212 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_213 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_214 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_215 = NIT_NULL; /* Once value for string variable[9]*/
+  val_t variable[13];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = NEW_CFunctionContext_compiling_methods___CFunctionContext___init( variable[1] /*v*/) /*new CFunctionContext*/;
+  CALL_compiling_methods___CompilerVisitor___cfc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::cfc=*/;
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = NEW_Array_array___Array___init() /*new Array[String]*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Once String constant */
+  if (once_value_193 != NIT_NULL) variable[4] = once_value_193;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" self"), TAG_Int(5)) /*new String*/;
+    once_value_193 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  CALL_abstract_collection___SimpleCollection___add( variable[3] /*args*/)( variable[3] /*args*/, variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_static_type___MMSignature___arity(variable[4])(variable[4]) /*MMSignature::arity*/;
+  /* Register variable[4]: Result */
+  variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
+  /* Register variable[4]: For iterator */
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
+  while (true) { /*for*/
+    /* Register variable[5]: For 'is_ok' result */
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable[5])) break; /*for*/
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[6]: Local variable */
     variable[6] = variable[5];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
-    variable[10] =  variable[6] /*i*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[8]: Once String constant */
+    if (once_value_195 != NIT_NULL) variable[8] = once_value_195;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" param"), TAG_Int(6)) /*new String*/;
+      once_value_195 = variable[8];
+    }
+    /* Register variable[8]: Result */
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    variable[8] =  variable[6] /*i*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[8]: Once String constant */
+    if (once_value_196 != NIT_NULL) variable[8] = once_value_196;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_196 = variable[8];
+    }
+    /* Register variable[8]: Result */
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    /* Register variable[7]: Result */
+    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_194: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
+  }
+  break_194: while(0);
+  /* Register variable[4]: Result */
+  variable[4] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_static_type___MMSignature___closures(variable[4])(variable[4]) /*MMSignature::closures*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArrayRead::length*/;
+  /* Register variable[4]: Result */
+  variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
+  /* Register variable[4]: For iterator */
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
+  while (true) { /*for*/
+    /* Register variable[5]: For 'is_ok' result */
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable[5])) break; /*for*/
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[6]: Local variable */
+    variable[6] = variable[5];
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[8]: Once String constant */
+    if (once_value_198 != NIT_NULL) variable[8] = once_value_198;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" wd"), TAG_Int(3)) /*new String*/;
+      once_value_198 = variable[8];
+    }
+    /* Register variable[8]: Result */
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    variable[8] =  variable[6] /*i*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[8]: Once String constant */
+    if (once_value_199 != NIT_NULL) variable[8] = once_value_199;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_199 = variable[8];
+    }
+    /* Register variable[8]: Result */
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    /* Register variable[7]: Result */
     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);
+    continue_197: while(0);
     CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
-  break_43: while(0);
-  variable[5] = variable[0];
-  variable[5] = CALL_compiling_methods___MMSrcMethod___decl_csignature(variable[5])(variable[5],  variable[1] /*v*/,  variable[3] /*args*/) /*MMSrcMethod::decl_csignature*/;
+  break_197: while(0);
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___MMSrcMethod___decl_csignature(variable[0])(variable[0],  variable[1] /*v*/,  variable[3] /*args*/) /*MMSrcMethod::decl_csignature*/;
   variable[4] = variable[5];
-  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
-  variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define LOCATE_"), TAG_Int(15)); /*new String*/
-  variable[7] = variable[6];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[8] = variable[0];
-  variable[8] = CALL_compiling_base___MMLocalProperty___cname(variable[8])(variable[8]) /*MMLocalProperty::cname*/;
-  variable[9] = variable[8];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
-  variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" \""), TAG_Int(2)); /*new String*/
-  variable[11] = variable[10];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
-  variable[12] = variable[0];
-  variable[12] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable[12])(variable[12]) /*MMLocalProperty::full_name*/;
-  variable[13] = variable[12];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
-  variable[14] = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
-  variable[15] = variable[14];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_200 != NIT_NULL) variable[6] = once_value_200;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define LOCATE_"), TAG_Int(15)) /*new String*/;
+    once_value_200 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_base___MMLocalProperty___cname(variable[0])(variable[0]) /*MMLocalProperty::cname*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_201 != NIT_NULL) variable[6] = once_value_201;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" \""), TAG_Int(2)) /*new String*/;
+    once_value_201 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable[0])(variable[0]) /*MMLocalProperty::full_name*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_202 != NIT_NULL) variable[6] = once_value_202;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)) /*new String*/;
+    once_value_202 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[8] =  variable[4] /*cs*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_203 != NIT_NULL) variable[6] = once_value_203;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_203 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[4] /*cs*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_204 != NIT_NULL) variable[6] = once_value_204;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)) /*new String*/;
+    once_value_204 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
   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*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
   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*/
+  /* Register variable[6]: Result */
+  variable[6] = NEW_CContext_compiling_base___CContext___init() /*new CContext*/;
   CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::ctx=*/;
+  /* Register variable[6]: Result */
   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*/;
+  /* Register variable[6]: Local variable */
   variable[6] =  TAG_Int(0);
-  variable[8] = variable[0];
-  variable[7] = variable[8];
+  /* Register variable[7]: Local variable */
+  variable[7] = variable[0];
+  /* Register variable[8]: Result */
   variable[8] = CALL_syntax_base___MMLocalProperty___node( variable[7] /*s*/)( variable[7] /*s*/) /*MMLocalProperty::node*/;
+  /* Register variable[8]: Result */
   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*/
+    /* Register variable[8]: Result */
     variable[8] = CALL_syntax_base___MMLocalProperty___node( variable[7] /*s*/)( variable[7] /*s*/) /*MMLocalProperty::node*/;
+    /* Register variable[8]: Result */
     variable[8] = CALL_parser_prod___PNode___line_number(variable[8])(variable[8]) /*PNode::line_number*/;
     variable[6] = variable[8] /*ln=*/;
   }
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-  variable[11] =  variable[6] /*ln*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
-  variable[14] = variable[0];
-  variable[14] = CALL_compiling_base___MMLocalProperty___cname(variable[14])(variable[14]) /*MMLocalProperty::cname*/;
-  variable[15] = variable[14];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_205 != NIT_NULL) variable[9] = once_value_205;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("struct trace_t trace = {NULL, NULL, "), TAG_Int(36)) /*new String*/;
+    once_value_205 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  variable[9] =  variable[6] /*ln*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_206 != NIT_NULL) variable[9] = once_value_206;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(", LOCATE_"), TAG_Int(9)) /*new String*/;
+    once_value_206 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_base___MMLocalProperty___cname(variable[0])(variable[0]) /*MMLocalProperty::cname*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_207 != NIT_NULL) variable[9] = once_value_207;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)) /*new String*/;
+    once_value_207 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   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*/
+  /* Register variable[8]: Once String constant */
+  if (once_value_208 != NIT_NULL) variable[8] = once_value_208;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("trace.prev = tracehead; tracehead = &trace;"), TAG_Int(43)) /*new String*/;
+    once_value_208 = variable[8];
+  }
+  /* Register variable[8]: Result */
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-  variable[11] = variable[0];
-  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] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-  variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
-  variable[14] = variable[13];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_209 != NIT_NULL) variable[9] = once_value_209;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("trace.file = LOCATE_"), TAG_Int(20)) /*new String*/;
+    once_value_209 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_abstractmetamodel___MMLocalProperty___module(variable[0])(variable[0]) /*MMLocalProperty::module*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_abstractmetamodel___MMModule___name(variable[9])(variable[9]) /*MMModule::name*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_210 != NIT_NULL) variable[9] = once_value_210;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_210 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   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] = CALL_compiling_methods___MMSrcMethod___do_compile_inside(variable[9])(variable[9],  variable[1] /*v*/,  variable[3] /*args*/) /*MMSrcMethod::do_compile_inside*/;
+  /* Register variable[8]: Local variable */
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_methods___MMSrcMethod___do_compile_inside(variable[0])(variable[0],  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*/
+  /* Register variable[9]: Once String constant */
+  if (once_value_211 != NIT_NULL) variable[9] = once_value_211;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("tracehead = trace.prev;"), TAG_Int(23)) /*new String*/;
+    once_value_211 = variable[9];
+  }
+  /* Register variable[9]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+  /* Register variable[9]: Result */
   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*/
+    /* Register variable[9]: Once String constant */
+    if (once_value_212 != NIT_NULL) variable[9] = once_value_212;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("return;"), TAG_Int(7)) /*new String*/;
+      once_value_212 = variable[9];
+    }
+    /* Register variable[9]: Result */
     CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
   } else { /*if*/
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-    variable[12] =  variable[8] /*s*/;
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
-    variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
-    variable[14] = variable[13];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_213 != NIT_NULL) variable[10] = once_value_213;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString("return "), TAG_Int(7)) /*new String*/;
+      once_value_213 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    variable[10] =  variable[8] /*s*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_214 != NIT_NULL) variable[10] = once_value_214;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_214 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[9]: Result */
     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*/;
   }
+  /* Register variable[9]: Result */
   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*/;
+  /* Register variable[9]: Result */
   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*/
+  /* Register variable[9]: Once String constant */
+  if (once_value_215 != NIT_NULL) variable[9] = once_value_215;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_215 = variable[9];
+  }
+  /* Register variable[9]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+  /* Register variable[9]: Result */
   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*/;
+  /* Register variable[9]: For iterator */
+  variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*AbstractArrayRead::iterator*/;
   while (true) { /*for*/
+    /* Register variable[10]: For 'is_ok' result */
     variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[10])) break; /*for*/
-    variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/;
+    variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[11]: Local variable */
     variable[11] = variable[10];
+    /* Register variable[12]: Result */
     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);
+    continue_216: while(0);
     CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ArrayIterator::next*/;
   }
-  break_44: while(0);
-  return_label41: while(false);
+  break_216: while(0);
+  return_label192: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___MMSrcMethod___decl_csignature(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 362, LOCATE_compiling_methods___MMSrcMethod___decl_csignature};
-  val_t variable[26];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 488, LOCATE_compiling_methods___MMSrcMethod___decl_csignature};
+  static val_t once_value_218 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_220 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_222 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_224 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_227 = NIT_NULL; /* Once value for string variable[12]*/
+      static val_t once_value_229 = NIT_NULL; /* Once value for string variable[16]*/
+    static val_t once_value_230 = NIT_NULL; /* Once value for string variable[13]*/
+      static val_t once_value_231 = NIT_NULL; /* Once value for string variable[13]*/
+    static val_t once_value_232 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_234 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_235 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_236 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_237 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_238 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_239 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_240 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_241 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_242 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_243 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_244 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_245 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_246 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_247 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_248 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_249 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_250 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_251 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_252 = NIT_NULL; /* Once value for string variable[9]*/
+  val_t variable[19];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
-  variable[5] = NEW_Array_array___Array___init(); /*new Array[String]*/
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = NEW_Array_array___Array___init() /*new Array[String]*/;
   variable[4] = variable[5];
-  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];
-  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)));
-  variable[12] = variable[11];
-  if (UNTAG_Bool(variable[12])) { /* and */
-    variable[12] = variable[8];
-    variable[12] = ATTR_array___AbstractArray____length(variable[12]) /*AbstractArray::_length*/;
-    variable[12] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)<UNTAG_Int(variable[12]));
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_218 != NIT_NULL) variable[6] = once_value_218;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("val_t "), TAG_Int(6)) /*new String*/;
+    once_value_218 = variable[6];
   }
-  variable[11] = variable[12];
-  if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[11] = variable[8];
-  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_label46;
-  return_label46: while(false);
-  variable[8] = variable[10];
-  variable[9] = variable[8];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
-  variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable[11] = variable[10];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Local variable */
+  variable[6] =  variable[2] /*args*/;
+  /* Register variable[7]: Local variable */
+  variable[7] =  TAG_Int(0);
+  /* Register variable[8]: Method return value and escape marker */
+  /* Register variable[9]: Result */
+  variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  /* Ensure var variable[9]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[9])) { /* and */
+    /* Register variable[9]: Result */
+    variable[9] = ATTR_array___AbstractArrayRead____length(variable[6]) /*AbstractArrayRead::_length*/;
+    /* Register variable[9]: Result */
+    variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)<UNTAG_Int(variable[9]));
+  }
+  /* Register variable[9]: Result */
+  if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[9]: Result */
+  variable[9] = ATTR_array___Array____items(variable[6]) /*Array::_items*/;
+  /* Register variable[9]: Result */
+  variable[9] = UNBOX_NativeArray(variable[9])[UNTAG_Int( variable[7] /*index*/)];
+  variable[8] = variable[9];
+  goto return_label219;
+  return_label219: while(false);
+  /* Register variable[6]: Result */
+  variable[6] = variable[8];
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_220 != NIT_NULL) variable[6] = once_value_220;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_220 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
   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] = CALL_static_type___MMLocalProperty___signature(variable[5])(variable[5]) /*MMLocalProperty::signature*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[5]: Result */
   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];
+  /* Register variable[5]: Result */
+  variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]) /*new Range[Int]*/;
+  /* Register variable[5]: For iterator */
   variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
   while (true) { /*for*/
+    /* Register variable[6]: For 'is_ok' result */
     variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[7]: Local variable */
     variable[7] = variable[6];
-    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];
-    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];
-    variable[16] = TAG_Bool(UNTAG_Int( variable[14] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[17] = variable[16];
-    if (UNTAG_Bool(variable[17])) { /* and */
-      variable[17] = variable[13];
-      variable[17] = ATTR_array___AbstractArray____length(variable[17]) /*AbstractArray::_length*/;
-      variable[17] = TAG_Bool(UNTAG_Int( variable[14] /*index*/)<UNTAG_Int(variable[17]));
+    /* Register variable[8]: Local variable */
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_222 != NIT_NULL) variable[10] = once_value_222;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString("val_t "), TAG_Int(6)) /*new String*/;
+      once_value_222 = variable[10];
     }
-    variable[16] = variable[17];
-    if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[16] = variable[13];
-    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_label48;
-    return_label48: while(false);
-    variable[12] = variable[15];
-    variable[13] = variable[12];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[10]: Result */
+    variable[10] = TAG_Int(UNTAG_Int( variable[7] /*i*/)+UNTAG_Int( TAG_Int(1)));
+    /* Register variable[11]: Local variable */
+    variable[11] =  variable[2] /*args*/;
+    /* Register variable[12]: Local variable */
+    variable[12] = variable[10];
+    /* Register variable[13]: Method return value and escape marker */
+    /* Register variable[14]: Result */
+    variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[14]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[14])) { /* and */
+      /* Register variable[14]: Result */
+      variable[14] = ATTR_array___AbstractArrayRead____length(variable[11]) /*AbstractArrayRead::_length*/;
+      /* Register variable[14]: Result */
+      variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[14]));
+    }
+    /* Register variable[14]: Result */
+    if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[14]: Result */
+    variable[14] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
+    /* Register variable[14]: Result */
+    variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
+    variable[13] = variable[14];
+    goto return_label223;
+    return_label223: while(false);
+    /* Register variable[10]: Result */
+    variable[10] = variable[13];
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_224 != NIT_NULL) variable[10] = once_value_224;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_224 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[9]: Result */
     variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
     variable[8] = variable[9];
     CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/,  variable[8] /*p*/) /*AbstractArray::add*/;
-    continue_47: while(0);
+    continue_221: while(0);
     CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
-  break_47: while(0);
-  variable[6] = variable[0];
-  variable[6] = CALL_static_type___MMLocalProperty___signature(variable[6])(variable[6]) /*MMLocalProperty::signature*/;
+  break_221: while(0);
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_static_type___MMSignature___arity(variable[6])(variable[6]) /*MMSignature::arity*/;
+  /* Register variable[6]: Result */
   variable[6] = TAG_Int(UNTAG_Int(variable[6])+UNTAG_Int( TAG_Int(1)));
   variable[5] = variable[6];
-  variable[6] = variable[0];
-  variable[6] = CALL_static_type___MMLocalProperty___signature(variable[6])(variable[6]) /*MMLocalProperty::signature*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[6]: Result */
   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];
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArrayRead::length*/;
+  /* Register variable[6]: Result */
+  variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]) /*new Range[Int]*/;
+  /* Register variable[6]: For iterator */
   variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
   while (true) { /*for*/
+    /* Register variable[7]: For 'is_ok' result */
     variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[8]: Local variable */
     variable[8] = variable[7];
-    variable[10] = variable[0];
-    variable[10] = CALL_compiling_methods___MMMethod___closure_cname(variable[10])(variable[10],  variable[8] /*i*/) /*MMMethod::closure_cname*/;
+    /* Register variable[9]: Local variable */
+    /* Register variable[10]: Result */
+    variable[10] = CALL_compiling_methods___MMMethod___closure_cname(variable[0])(variable[0],  variable[8] /*i*/) /*MMMethod::closure_cname*/;
     variable[9] = variable[10];
-    variable[11] = variable[0];
-    variable[11] = CALL_static_type___MMLocalProperty___signature(variable[11])(variable[11]) /*MMLocalProperty::signature*/;
+    /* Register variable[10]: Local variable */
+    /* Register variable[11]: Result */
+    variable[11] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+    /* Register variable[11]: Result */
     variable[11] = CALL_static_type___MMSignature___closures(variable[11])(variable[11]) /*MMSignature::closures*/;
+    /* Register variable[12]: Local variable */
     variable[12] = variable[11];
+    /* Register variable[13]: Local variable */
     variable[13] =  variable[8] /*i*/;
+    /* Register variable[14]: Method return value and escape marker */
+    /* Register variable[15]: Result */
     variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[16] = variable[15];
-    if (UNTAG_Bool(variable[16])) { /* and */
-      variable[16] = variable[12];
-      variable[16] = ATTR_array___AbstractArray____length(variable[16]) /*AbstractArray::_length*/;
-      variable[16] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[16]));
+    /* Ensure var variable[15]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[15])) { /* and */
+      /* Register variable[15]: Result */
+      variable[15] = ATTR_array___AbstractArrayRead____length(variable[12]) /*AbstractArrayRead::_length*/;
+      /* Register variable[15]: Result */
+      variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[15]));
     }
-    variable[15] = variable[16];
-    if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[15] = variable[12];
-    variable[15] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
+    /* Register variable[15]: Result */
+    if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[15]: Result */
+    variable[15] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
+    /* Register variable[15]: Result */
     variable[15] = UNBOX_NativeArray(variable[15])[UNTAG_Int( variable[13] /*index*/)];
     variable[14] = variable[15];
-    goto return_label50;
-    return_label50: while(false);
+    goto return_label226;
+    return_label226: while(false);
+    /* Register variable[11]: Result */
     variable[11] = variable[14];
+    /* Register variable[11]: Result */
     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]*/
+    /* Register variable[11]: Local variable */
+    /* Register variable[12]: Result */
+    variable[12] = NEW_Array_array___Array___init() /*new Array[String]*/;
     variable[11] = variable[12];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
-    variable[15] =  variable[9] /*closcn*/;
-    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];
-    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*/;
+    /* Register variable[12]: Once String constant */
+    if (once_value_227 != NIT_NULL) variable[12] = once_value_227;
+    else {
+      variable[12] = NEW_String_string___String___with_native(BOX_NativeString("struct WBT_ *"), TAG_Int(13)) /*new String*/;
+      once_value_227 = variable[12];
+    }
+    /* Register variable[12]: Result */
     CALL_abstract_collection___SimpleCollection___add( variable[11] /*subparams*/)( variable[11] /*subparams*/, variable[12]) /*AbstractArray::add*/;
+    /* Register variable[12]: Result */
     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];
+    /* Register variable[12]: Result */
+    variable[12] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[12]) /*new Range[Int]*/;
+    /* Register variable[12]: For iterator */
     variable[12] = CALL_abstract_collection___Collection___iterator(variable[12])(variable[12]) /*Range::iterator*/;
     while (true) { /*for*/
+      /* Register variable[13]: For 'is_ok' result */
       variable[13] = CALL_abstract_collection___Iterator___is_ok(variable[12])(variable[12]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[13])) break; /*for*/
-      variable[13] = CALL_abstract_collection___Iterator___item(variable[12])(variable[12]) /*Iterator::item*/;
+      variable[13] = CALL_abstract_collection___Iterator___item(variable[12])(variable[12]) /*Iterator::item*/ /* Ensure var: For item*/;
+      /* Register variable[14]: Local variable */
       variable[14] = variable[13];
-      variable[16] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)); /*new String*/
+      /* Register variable[15]: Local variable */
+      /* Register variable[16]: Once String constant */
+      if (once_value_229 != NIT_NULL) variable[16] = once_value_229;
+      else {
+        variable[16] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)) /*new String*/;
+        once_value_229 = variable[16];
+      }
+      /* Register variable[16]: Result */
       variable[15] = variable[16];
       CALL_abstract_collection___SimpleCollection___add( variable[11] /*subparams*/)( variable[11] /*subparams*/,  variable[15] /*p*/) /*AbstractArray::add*/;
-      continue_51: while(0);
+      continue_228: while(0);
       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*/
+    break_228: while(0);
+    /* Register variable[12]: Local variable */
+    /* Register variable[13]: Once String constant */
+    if (once_value_230 != NIT_NULL) variable[13] = once_value_230;
+    else {
+      variable[13] = NEW_String_string___String___with_native(BOX_NativeString("void"), TAG_Int(4)) /*new String*/;
+      once_value_230 = variable[13];
+    }
+    /* Register variable[13]: Result */
     variable[12] = variable[13];
+    /* Register variable[13]: Result */
     variable[13] = CALL_static_type___MMSignature___return_type( variable[10] /*cs*/)( variable[10] /*cs*/) /*MMSignature::return_type*/;
+    /* Register variable[13]: Result */
     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*/
+      /* Register variable[13]: Once String constant */
+      if (once_value_231 != NIT_NULL) variable[13] = once_value_231;
+      else {
+        variable[13] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)) /*new String*/;
+        once_value_231 = variable[13];
+      }
+      /* Register variable[13]: Result */
       variable[12] = variable[13] /*r=*/;
     }
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
-    variable[16] =  variable[9] /*closcn*/;
-    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];
-    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];
-    variable[23] = TAG_Bool(UNTAG_Int( variable[21] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[24] = variable[23];
-    if (UNTAG_Bool(variable[24])) { /* and */
-      variable[24] = variable[20];
-      variable[24] = ATTR_array___AbstractArray____length(variable[24]) /*AbstractArray::_length*/;
-      variable[24] = TAG_Bool(UNTAG_Int( variable[21] /*index*/)<UNTAG_Int(variable[24]));
-    }
-    variable[23] = variable[24];
-    if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[23] = variable[20];
-    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_label52;
-    return_label52: while(false);
-    variable[19] = variable[22];
-    variable[20] = variable[19];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[22]) /*AbstractArray::add*/;
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_232 != NIT_NULL) variable[14] = once_value_232;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString("struct WBT_ *"), TAG_Int(13)) /*new String*/;
+      once_value_232 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[14]: Result */
+    variable[14] = TAG_Int(UNTAG_Int( variable[5] /*first_closure_index*/)+UNTAG_Int( variable[8] /*i*/));
+    /* Register variable[15]: Local variable */
+    variable[15] =  variable[2] /*args*/;
+    /* Register variable[16]: Local variable */
+    variable[16] = variable[14];
+    /* Register variable[17]: Method return value and escape marker */
+    /* Register variable[18]: Result */
+    variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[18]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[18])) { /* and */
+      /* Register variable[18]: Result */
+      variable[18] = ATTR_array___AbstractArrayRead____length(variable[15]) /*AbstractArrayRead::_length*/;
+      /* Register variable[18]: Result */
+      variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[18]));
+    }
+    /* Register variable[18]: Result */
+    if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[18]: Result */
+    variable[18] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
+    /* Register variable[18]: Result */
+    variable[18] = UNBOX_NativeArray(variable[18])[UNTAG_Int( variable[16] /*index*/)];
+    variable[17] = variable[18];
+    goto return_label233;
+    return_label233: while(false);
+    /* Register variable[14]: Result */
+    variable[14] = variable[17];
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_234 != NIT_NULL) variable[14] = once_value_234;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_234 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[13]: Result */
     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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
-    variable[16] =  variable[9] /*closcn*/;
-    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];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
-    variable[16] =  variable[12] /*r*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
-    variable[19] =  variable[9] /*closcn*/;
-    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];
-    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] = CALL_string___Collection___join( variable[11] /*subparams*/)( variable[11] /*subparams*/, variable[22]) /*Collection::join*/;
-    variable[23] = variable[22];
-    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];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
-    variable[16] =  variable[9] /*closcn*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
-    variable[19] =  variable[9] /*closcn*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[21]) /*AbstractArray::add*/;
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_235 != NIT_NULL) variable[14] = once_value_235;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString("typedef "), TAG_Int(8)) /*new String*/;
+      once_value_235 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    variable[14] =  variable[12] /*r*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_236 != NIT_NULL) variable[14] = once_value_236;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" (*"), TAG_Int(3)) /*new String*/;
+      once_value_236 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    variable[14] =  variable[9] /*closcn*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_237 != NIT_NULL) variable[14] = once_value_237;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString(")("), TAG_Int(2)) /*new String*/;
+      once_value_237 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_238 != NIT_NULL) variable[14] = once_value_238;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+      once_value_238 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Register variable[14]: Result */
+    variable[14] = CALL_string___Collection___join( variable[11] /*subparams*/)( variable[11] /*subparams*/, variable[14]) /*Collection::join*/;
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_239 != NIT_NULL) variable[14] = once_value_239;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)) /*new String*/;
+      once_value_239 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[13]: Result */
     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);
+    continue_225: while(0);
     CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
-  break_49: while(0);
-  variable[6] = variable[0];
-  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
+  break_225: while(0);
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[0])(variable[0]) /*MMLocalProperty::global*/;
+  /* Register variable[6]: Result */
   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*/
+    /* Register variable[6]: Once String constant */
+    if (once_value_240 != NIT_NULL) variable[6] = once_value_240;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("int* init_table"), TAG_Int(15)) /*new String*/;
+      once_value_240 = variable[6];
+    }
+    /* Register variable[6]: Result */
     CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/, variable[6]) /*AbstractArray::add*/;
   }
+  /* Register variable[6]: Local variable */
   /*variable[6] is variable ret*/
-  variable[7] = variable[0];
-  variable[7] = CALL_static_type___MMLocalProperty___signature(variable[7])(variable[7]) /*MMLocalProperty::signature*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_static_type___MMLocalProperty___signature(variable[0])(variable[0]) /*MMLocalProperty::signature*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_static_type___MMSignature___return_type(variable[7])(variable[7]) /*MMSignature::return_type*/;
+  /* Register variable[7]: Result */
   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*/
+    /* Register variable[7]: Once String constant */
+    if (once_value_241 != NIT_NULL) variable[7] = once_value_241;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)) /*new String*/;
+      once_value_241 = variable[7];
+    }
+    /* Register variable[7]: Result */
     variable[6] = variable[7] /*ret=*/;
   } else { /*if*/
-    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("void"), TAG_Int(4)); /*new String*/
+    /* Register variable[7]: Once String constant */
+    if (once_value_242 != NIT_NULL) variable[7] = once_value_242;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("void"), TAG_Int(4)) /*new String*/;
+      once_value_242 = variable[7];
+    }
+    /* Register variable[7]: Result */
     variable[6] = variable[7] /*ret=*/;
   }
-  variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  /* Register variable[7]: Local variable */
+  /* Register variable[8]: Once String constant */
+  if (once_value_243 != NIT_NULL) variable[8] = once_value_243;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_243 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Register variable[8]: Result */
   variable[8] = CALL_string___Collection___join( variable[4] /*params*/)( variable[4] /*params*/, variable[8]) /*Collection::join*/;
   variable[7] = variable[8];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-  variable[12] =  variable[6] /*ret*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
-  variable[15] = variable[0];
-  variable[15] = CALL_compiling_base___MMLocalProperty___cname(variable[15])(variable[15]) /*MMLocalProperty::cname*/;
-  variable[16] = variable[15];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
-  variable[19] =  variable[7] /*p*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
+  /* Register variable[8]: Local variable */
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_244 != NIT_NULL) variable[10] = once_value_244;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_244 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[6] /*ret*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_245 != NIT_NULL) variable[10] = once_value_245;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)) /*new String*/;
+    once_value_245 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_base___MMLocalProperty___cname(variable[0])(variable[0]) /*MMLocalProperty::cname*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_246 != NIT_NULL) variable[10] = once_value_246;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_246 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[7] /*p*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_247 != NIT_NULL) variable[10] = once_value_247;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_247 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
   variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
   variable[8] = variable[9];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-  variable[12] =  variable[6] /*ret*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
-  variable[15] = variable[0];
-  variable[15] = CALL_compiling_base___MMLocalProperty___cname(variable[15])(variable[15]) /*MMLocalProperty::cname*/;
-  variable[16] = variable[15];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
-  variable[19] =  variable[7] /*p*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_248 != NIT_NULL) variable[10] = once_value_248;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("typedef "), TAG_Int(8)) /*new String*/;
+    once_value_248 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[6] /*ret*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_249 != NIT_NULL) variable[10] = once_value_249;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" (* "), TAG_Int(4)) /*new String*/;
+    once_value_249 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_base___MMLocalProperty___cname(variable[0])(variable[0]) /*MMLocalProperty::cname*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_250 != NIT_NULL) variable[10] = once_value_250;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_t)("), TAG_Int(4)) /*new String*/;
+    once_value_250 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[7] /*p*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_251 != NIT_NULL) variable[10] = once_value_251;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)) /*new String*/;
+    once_value_251 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
   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*/
+  /* Register variable[9]: Once String constant */
+  if (once_value_252 != NIT_NULL) variable[9] = once_value_252;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_252 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Register variable[9]: Result */
   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);
+  goto return_label217;
+  return_label217: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 val_t compiling_methods___MMSrcMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 454, LOCATE_compiling_methods___MMSrcMethod___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 578, LOCATE_compiling_methods___MMSrcMethod___do_compile_inside};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **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, 454);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 578);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t compiling_methods___MMReadImplementationMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 459, LOCATE_compiling_methods___MMReadImplementationMethod___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 583, LOCATE_compiling_methods___MMReadImplementationMethod___do_compile_inside};
   val_t variable[10];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
-  variable[4] = variable[0];
-  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[4])(variable[4]) /*MMAttrImplementationMethod::node*/;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[0])(variable[0]) /*MMAttrImplementationMethod::node*/;
+  /* Register variable[4]: Result */
   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)));
-  variable[9] = variable[8];
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___MMLocalProperty___node(variable[0])(variable[0]) /*MMAttrImplementationMethod::node*/;
+  /* Register variable[6]: Local variable */
+  variable[6] =  variable[2] /*params*/;
+  /* Register variable[7]: Local variable */
+  variable[7] =  TAG_Int(0);
+  /* Register variable[8]: Method return value and escape marker */
+  /* Register variable[9]: Result */
+  variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  /* Ensure var variable[9]: Left 'and' operand*/
   if (UNTAG_Bool(variable[9])) { /* and */
-    variable[9] = variable[5];
-    variable[9] = ATTR_array___AbstractArray____length(variable[9]) /*AbstractArray::_length*/;
-    variable[9] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)<UNTAG_Int(variable[9]));
+    /* Register variable[9]: Result */
+    variable[9] = ATTR_array___AbstractArrayRead____length(variable[6]) /*AbstractArrayRead::_length*/;
+    /* Register variable[9]: Result */
+    variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)<UNTAG_Int(variable[9]));
   }
+  /* Register variable[9]: Result */
+  if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[9]: Result */
+  variable[9] = ATTR_array___Array____items(variable[6]) /*Array::_items*/;
+  /* Register variable[9]: Result */
+  variable[9] = UNBOX_NativeArray(variable[9])[UNTAG_Int( variable[7] /*index*/)];
   variable[8] = variable[9];
-  if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[8] = variable[5];
-  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_label54;
-  return_label54: while(false);
-  variable[5] = variable[7];
-  variable[4] = CALL_compiling_methods___MMAttribute___compile_access(variable[4])(variable[4],  variable[1] /*v*/, variable[5]) /*MMAttribute::compile_access*/;
+  goto return_label254;
+  return_label254: while(false);
+  /* Register variable[6]: Result */
+  variable[6] = variable[8];
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___MMAttribute___compile_read_access(variable[4])(variable[4],  variable[1] /*v*/, variable[5], variable[6]) /*MMAttribute::compile_read_access*/;
   variable[3] = variable[4];
-  goto return_label53;
-  return_label53: while(false);
+  goto return_label253;
+  return_label253: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 val_t compiling_methods___MMWriteImplementationMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 466, LOCATE_compiling_methods___MMWriteImplementationMethod___do_compile_inside};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 590, LOCATE_compiling_methods___MMWriteImplementationMethod___do_compile_inside};
+  val_t variable[11];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
-  variable[4] = variable[0];
-  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[4])(variable[4]) /*MMAttrImplementationMethod::node*/;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[0])(variable[0]) /*MMAttrImplementationMethod::node*/;
+  /* Register variable[4]: Result */
   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)));
-  variable[9] = variable[8];
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___MMLocalProperty___node(variable[0])(variable[0]) /*MMAttrImplementationMethod::node*/;
+  /* Register variable[6]: Local variable */
+  variable[6] =  variable[2] /*params*/;
+  /* Register variable[7]: Local variable */
+  variable[7] =  TAG_Int(0);
+  /* Register variable[8]: Method return value and escape marker */
+  /* Register variable[9]: Result */
+  variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  /* Ensure var variable[9]: Left 'and' operand*/
   if (UNTAG_Bool(variable[9])) { /* and */
-    variable[9] = variable[5];
-    variable[9] = ATTR_array___AbstractArray____length(variable[9]) /*AbstractArray::_length*/;
-    variable[9] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)<UNTAG_Int(variable[9]));
+    /* Register variable[9]: Result */
+    variable[9] = ATTR_array___AbstractArrayRead____length(variable[6]) /*AbstractArrayRead::_length*/;
+    /* Register variable[9]: Result */
+    variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)<UNTAG_Int(variable[9]));
   }
+  /* Register variable[9]: Result */
+  if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[9]: Result */
+  variable[9] = ATTR_array___Array____items(variable[6]) /*Array::_items*/;
+  /* Register variable[9]: Result */
+  variable[9] = UNBOX_NativeArray(variable[9])[UNTAG_Int( variable[7] /*index*/)];
   variable[8] = variable[9];
-  if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[8] = variable[5];
-  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_label56;
-  return_label56: while(false);
-  variable[5] = variable[7];
-  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)));
-  variable[9] = variable[8];
-  if (UNTAG_Bool(variable[9])) { /* and */
-    variable[9] = variable[5];
-    variable[9] = ATTR_array___AbstractArray____length(variable[9]) /*AbstractArray::_length*/;
-    variable[9] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)<UNTAG_Int(variable[9]));
+  goto return_label256;
+  return_label256: while(false);
+  /* Register variable[6]: Result */
+  variable[6] = variable[8];
+  /* Register variable[7]: Local variable */
+  variable[7] =  variable[2] /*params*/;
+  /* Register variable[8]: Local variable */
+  variable[8] =  TAG_Int(1);
+  /* Register variable[9]: Method return value and escape marker */
+  /* Register variable[10]: Result */
+  variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+  /* Ensure var variable[10]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[10])) { /* and */
+    /* Register variable[10]: Result */
+    variable[10] = ATTR_array___AbstractArrayRead____length(variable[7]) /*AbstractArrayRead::_length*/;
+    /* Register variable[10]: Result */
+    variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)<UNTAG_Int(variable[10]));
   }
-  variable[8] = variable[9];
-  if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[8] = variable[5];
-  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_label57;
-  return_label57: while(false);
-  variable[5] = variable[7];
-  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*CompilerVisitor::add_assignment*/;
+  /* Register variable[10]: Result */
+  if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[10]: Result */
+  variable[10] = ATTR_array___Array____items(variable[7]) /*Array::_items*/;
+  /* Register variable[10]: Result */
+  variable[10] = UNBOX_NativeArray(variable[10])[UNTAG_Int( variable[8] /*index*/)];
+  variable[9] = variable[10];
+  goto return_label257;
+  return_label257: while(false);
+  /* Register variable[7]: Result */
+  variable[7] = variable[9];
+  CALL_compiling_methods___MMAttribute___compile_write_access(variable[4])(variable[4],  variable[1] /*v*/, variable[5], variable[6], variable[7]) /*MMAttribute::compile_write_access*/;
   variable[3] =  NIT_NULL /*null*/;
-  goto return_label55;
-  return_label55: while(false);
+  goto return_label255;
+  return_label255: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 val_t compiling_methods___MMMethSrcMethod___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 474, LOCATE_compiling_methods___MMMethSrcMethod___do_compile_inside};
-  val_t variable[6];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 598, LOCATE_compiling_methods___MMMethSrcMethod___do_compile_inside};
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
-  variable[4] = variable[0];
-  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[4])(variable[4]) /*MMMethSrcMethod::node*/;
-  variable[5] = variable[0];
-  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*/;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[0])(variable[0]) /*MMMethSrcMethod::node*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___AMethPropdef___do_compile_inside(variable[4])(variable[4],  variable[1] /*v*/, variable[0],  variable[2] /*params*/) /*AMethPropdef::do_compile_inside*/;
   variable[3] = variable[4];
-  goto return_label58;
-  return_label58: while(false);
+  goto return_label258;
+  return_label258: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 val_t compiling_methods___MMImplicitInit___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 481, LOCATE_compiling_methods___MMImplicitInit___do_compile_inside};
-  val_t variable[19];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 605, LOCATE_compiling_methods___MMImplicitInit___do_compile_inside};
+  val_t variable[18];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
-  variable[5] = CALL_abstract_collection___Collection___length( variable[2] /*params*/)( variable[2] /*params*/) /*AbstractArray::length*/;
-  variable[6] = variable[0];
-  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*/;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_abstract_collection___Collection___length( variable[2] /*params*/)( variable[2] /*params*/) /*AbstractArrayRead::length*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(variable[0])(variable[0]) /*MMImplicitInit::unassigned_attributes*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArrayRead::length*/;
+  /* Register variable[5]: Result */
   variable[5] = TAG_Int(UNTAG_Int(variable[5])-UNTAG_Int(variable[6]));
   variable[4] = variable[5];
-  variable[6] = CALL_abstract_collection___Collection___first( variable[2] /*params*/)( variable[2] /*params*/) /*IndexedCollection::first*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstract_collection___Collection___first( variable[2] /*params*/)( variable[2] /*params*/) /*IndexedCollectionRead::first*/;
   variable[5] = variable[6];
-  variable[6] = variable[0];
-  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*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_syntax_base___MMImplicitInit___super_inits(variable[0])(variable[0]) /*MMImplicitInit::super_inits*/;
+  /* Register variable[6]: For iterator */
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*AbstractArrayRead::iterator*/;
   while (true) { /*for*/
+    /* Register variable[7]: For 'is_ok' result */
     variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[8]: Local variable */
     variable[8] = variable[7];
+    /* Register variable[9]: Result */
     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]*/
+    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, 610); nit_exit(1);}
+    /* Register variable[9]: Local variable */
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
     CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  variable[5] /*recv*/) /*AbstractArray::add*/;
+    /* Register variable[10]: Result */
     variable[9] = variable[10];
-    variable[10] = variable[0];
-    variable[10] = CALL_mmbuilder___MMImplicitInit___super_init(variable[10])(variable[10]) /*MMImplicitInit::super_init*/;
+    /* Register variable[10]: Result */
+    variable[10] = CALL_mmbuilder___MMImplicitInit___super_init(variable[0])(variable[0]) /*MMImplicitInit::super_init*/;
+    /* Register variable[10]: Result */
     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]*/
+      /* Register variable[10]: Local variable */
+      /* Register variable[11]: Result */
+      variable[11] = NEW_Array_array___Array___with_capacity( variable[4] /*f*/) /*new Array[String]*/;
       variable[10] = variable[11];
       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]*/
+      /* Register variable[11]: Result */
+      variable[11] = NEW_Range_range___Range___without_last( TAG_Int(1),  variable[4] /*f*/) /*new Range[Int]*/;
+      /* Register variable[11]: For iterator */
       variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
       while (true) { /*for*/
+        /* Register variable[12]: For 'is_ok' result */
         variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
         if (!UNTAG_Bool(variable[12])) break; /*for*/
-        variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/;
+        variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/ /* Ensure var: For item*/;
+        /* Register variable[13]: Local variable */
         variable[13] = variable[12];
+        /* Register variable[14]: Local variable */
         variable[14] =  variable[2] /*params*/;
+        /* Register variable[15]: Local variable */
         variable[15] =  variable[13] /*i*/;
+        /* Register variable[16]: Method return value and escape marker */
+        /* Register variable[17]: Result */
         variable[17] = TAG_Bool(UNTAG_Int( variable[15] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-        variable[18] = variable[17];
-        if (UNTAG_Bool(variable[18])) { /* and */
-          variable[18] = variable[14];
-          variable[18] = ATTR_array___AbstractArray____length(variable[18]) /*AbstractArray::_length*/;
-          variable[18] = TAG_Bool(UNTAG_Int( variable[15] /*index*/)<UNTAG_Int(variable[18]));
+        /* Ensure var variable[17]: Left 'and' operand*/
+        if (UNTAG_Bool(variable[17])) { /* and */
+          /* Register variable[17]: Result */
+          variable[17] = ATTR_array___AbstractArrayRead____length(variable[14]) /*AbstractArrayRead::_length*/;
+          /* Register variable[17]: Result */
+          variable[17] = TAG_Bool(UNTAG_Int( variable[15] /*index*/)<UNTAG_Int(variable[17]));
         }
-        variable[17] = variable[18];
-        if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-        variable[17] = variable[14];
-        variable[17] = ATTR_array___Array____items(variable[17]) /*Array::_items*/;
+        /* Register variable[17]: Result */
+        if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+        /* Register variable[17]: Result */
+        variable[17] = ATTR_array___Array____items(variable[14]) /*Array::_items*/;
+        /* Register variable[17]: Result */
         variable[17] = UNBOX_NativeArray(variable[17])[UNTAG_Int( variable[15] /*index*/)];
         variable[16] = variable[17];
-        goto return_label62;
-        return_label62: while(false);
+        goto return_label262;
+        return_label262: while(false);
+        /* Register variable[14]: Result */
         variable[14] = variable[16];
         CALL_abstract_collection___SimpleCollection___add( variable[10] /*args*/)( variable[10] /*args*/, variable[14]) /*AbstractArray::add*/;
-        continue_61: while(0);
+        continue_261: while(0);
         CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
       }
-      break_61: while(0);
-      CALL_compiling_methods___MMMethod___compile_call( variable[8] /*sp*/)( variable[8] /*sp*/,  variable[1] /*v*/,  variable[10] /*args*/) /*MMMethod::compile_call*/;
+      break_261: while(0);
+      CALL_compiling_methods___MMMethod___compile_stmt_call( variable[8] /*sp*/)( variable[8] /*sp*/,  variable[1] /*v*/,  variable[10] /*args*/) /*MMMethod::compile_stmt_call*/;
     } else { /*if*/
-      CALL_compiling_methods___MMMethod___compile_call( variable[8] /*sp*/)( variable[8] /*sp*/,  variable[1] /*v*/,  variable[9] /*args_recv*/) /*MMMethod::compile_call*/;
+      CALL_compiling_methods___MMMethod___compile_stmt_call( variable[8] /*sp*/)( variable[8] /*sp*/,  variable[1] /*v*/,  variable[9] /*args_recv*/) /*MMMethod::compile_stmt_call*/;
     }
-    continue_60: while(0);
+    continue_260: while(0);
     CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
-  break_60: while(0);
-  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];
+  break_260: while(0);
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstract_collection___Collection___length( variable[2] /*params*/)( variable[2] /*params*/) /*AbstractArrayRead::length*/;
+  /* Register variable[6]: Result */
+  variable[6] = NEW_Range_range___Range___without_last( variable[4] /*f*/, variable[6]) /*new Range[Int]*/;
+  /* Register variable[6]: For iterator */
   variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
   while (true) { /*for*/
+    /* Register variable[7]: For 'is_ok' result */
     variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[8]: Local variable */
     variable[8] = variable[7];
-    variable[10] = variable[0];
-    variable[10] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(variable[10])(variable[10]) /*MMImplicitInit::unassigned_attributes*/;
+    /* Register variable[9]: Local variable */
+    /* Register variable[10]: Result */
+    variable[10] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(variable[0])(variable[0]) /*MMImplicitInit::unassigned_attributes*/;
+    /* Register variable[11]: Result */
     variable[11] = TAG_Int(UNTAG_Int( variable[8] /*i*/)-UNTAG_Int( variable[4] /*f*/));
+    /* Register variable[12]: Local variable */
     variable[12] = variable[10];
+    /* Register variable[13]: Local variable */
     variable[13] = variable[11];
+    /* Register variable[14]: Method return value and escape marker */
+    /* Register variable[15]: Result */
     variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[16] = variable[15];
-    if (UNTAG_Bool(variable[16])) { /* and */
-      variable[16] = variable[12];
-      variable[16] = ATTR_array___AbstractArray____length(variable[16]) /*AbstractArray::_length*/;
-      variable[16] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[16]));
+    /* Ensure var variable[15]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[15])) { /* and */
+      /* Register variable[15]: Result */
+      variable[15] = ATTR_array___AbstractArrayRead____length(variable[12]) /*AbstractArrayRead::_length*/;
+      /* Register variable[15]: Result */
+      variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[15]));
+    }
+    /* Register variable[15]: Result */
+    if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[15]: Result */
+    variable[15] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
+    /* Register variable[15]: Result */
+    variable[15] = UNBOX_NativeArray(variable[15])[UNTAG_Int( variable[13] /*index*/)];
+    variable[14] = variable[15];
+    goto return_label264;
+    return_label264: while(false);
+    /* Register variable[10]: Result */
+    variable[10] = variable[14];
+    variable[9] = variable[10];
+    /* Register variable[10]: Local variable */
+    variable[10] =  variable[2] /*params*/;
+    /* Register variable[11]: Local variable */
+    variable[11] =  variable[8] /*i*/;
+    /* Register variable[12]: Method return value and escape marker */
+    /* Register variable[13]: Result */
+    variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[13]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[13])) { /* and */
+      /* Register variable[13]: Result */
+      variable[13] = ATTR_array___AbstractArrayRead____length(variable[10]) /*AbstractArrayRead::_length*/;
+      /* Register variable[13]: Result */
+      variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[13]));
+    }
+    /* Register variable[13]: Result */
+    if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[13]: Result */
+    variable[13] = ATTR_array___Array____items(variable[10]) /*Array::_items*/;
+    /* Register variable[13]: Result */
+    variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
+    variable[12] = variable[13];
+    goto return_label265;
+    return_label265: while(false);
+    /* Register variable[10]: Result */
+    variable[10] = variable[12];
+    CALL_compiling_methods___MMAttribute___compile_write_access( variable[9] /*attribute*/)( variable[9] /*attribute*/,  variable[1] /*v*/,  NIT_NULL /*null*/,  variable[5] /*recv*/, variable[10]) /*MMAttribute::compile_write_access*/;
+    continue_263: while(0);
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
+  }
+  break_263: while(0);
+  variable[3] =  NIT_NULL /*null*/;
+  goto return_label259;
+  return_label259: while(false);
+  tracehead = trace.prev;
+  return variable[3];
+}
+val_t compiling_methods___MMType___compile_cast(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, NULL, 632, LOCATE_compiling_methods___MMType___compile_cast};
+  static val_t once_value_267 = NIT_NULL; /* Once value for string variable[7]*/
+      static val_t once_value_268 = NIT_NULL; /* Once value for string variable[8]*/
+      static val_t once_value_269 = NIT_NULL; /* Once value for string variable[8]*/
+      static val_t once_value_270 = NIT_NULL; /* Once value for string variable[8]*/
+      static val_t once_value_271 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_272 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_273 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_274 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_275 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_276 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_277 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_278 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_279 = NIT_NULL; /* Once value for string variable[8]*/
+  val_t variable[9];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Local variable */
+  variable[3] =  param2;
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_static_type___MMType___local_class(variable[0])(variable[0]) /*MMType::local_class*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___global(variable[6])(variable[6]) /*MMLocalClass::global*/;
+  variable[5] = variable[6];
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Once String constant */
+  if (once_value_267 != NIT_NULL) variable[7] = once_value_267;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_267 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  variable[6] = variable[7];
+  /* Register variable[7]: Result */
+  variable[7] = CALL_static_type___MMType___is_nullable( variable[3] /*fromtype*/)( variable[3] /*fromtype*/) /*MMType::is_nullable*/;
+  if (UNTAG_Bool(variable[7])) { /*if*/
+    /* Register variable[7]: Result */
+    variable[7] = CALL_static_type___MMType___is_nullable(variable[0])(variable[0]) /*MMType::is_nullable*/;
+    if (UNTAG_Bool(variable[7])) { /*if*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+      /* Register variable[8]: Once String constant */
+      if (once_value_268 != NIT_NULL) variable[8] = once_value_268;
+      else {
+        variable[8] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+        once_value_268 = variable[8];
+      }
+      /* Register variable[8]: Result */
+      /* Ensure var variable[8]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+      variable[8] =  variable[2] /*recv*/ /* Ensure var: super-string element*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+      /* Register variable[8]: Once String constant */
+      if (once_value_269 != NIT_NULL) variable[8] = once_value_269;
+      else {
+        variable[8] = NEW_String_string___String___with_native(BOX_NativeString("==NIT_NULL) || "), TAG_Int(15)) /*new String*/;
+        once_value_269 = variable[8];
+      }
+      /* Register variable[8]: Result */
+      /* Ensure var variable[8]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+      /* Register variable[7]: Result */
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      variable[6] = variable[7] /*s=*/;
+    } else { /*if*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+      /* Register variable[8]: Once String constant */
+      if (once_value_270 != NIT_NULL) variable[8] = once_value_270;
+      else {
+        variable[8] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+        once_value_270 = variable[8];
+      }
+      /* Register variable[8]: Result */
+      /* Ensure var variable[8]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+      variable[8] =  variable[2] /*recv*/ /* Ensure var: super-string element*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+      /* Register variable[8]: Once String constant */
+      if (once_value_271 != NIT_NULL) variable[8] = once_value_271;
+      else {
+        variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!=NIT_NULL) && "), TAG_Int(15)) /*new String*/;
+        once_value_271 = variable[8];
+      }
+      /* Register variable[8]: Result */
+      /* Ensure var variable[8]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+      /* Register variable[7]: Result */
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      variable[6] = variable[7] /*s=*/;
     }
-    variable[15] = variable[16];
-    if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[15] = variable[12];
-    variable[15] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
-    variable[15] = UNBOX_NativeArray(variable[15])[UNTAG_Int( variable[13] /*index*/)];
-    variable[14] = variable[15];
-    goto return_label64;
-    return_label64: while(false);
-    variable[10] = variable[14];
-    variable[9] = variable[10];
-    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)));
-    variable[15] = variable[14];
-    if (UNTAG_Bool(variable[15])) { /* and */
-      variable[15] = variable[11];
-      variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-      variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+  } else { /*if*/
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[8]: Once String constant */
+    if (once_value_272 != NIT_NULL) variable[8] = once_value_272;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+      once_value_272 = variable[8];
     }
-    variable[14] = variable[15];
-    if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[14] = variable[11];
-    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_label65;
-    return_label65: while(false);
-    variable[11] = variable[13];
-    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[10], variable[11]) /*CompilerVisitor::add_assignment*/;
-    continue_63: while(0);
-    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
+    /* Register variable[8]: Result */
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    variable[8] =  variable[2] /*recv*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    /* Register variable[8]: Once String constant */
+    if (once_value_273 != NIT_NULL) variable[8] = once_value_273;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("==NIT_NULL) || "), TAG_Int(15)) /*new String*/;
+      once_value_273 = variable[8];
+    }
+    /* Register variable[8]: Result */
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    /* Register variable[7]: Result */
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    variable[6] = variable[7] /*s=*/;
   }
-  break_63: while(0);
-  variable[3] =  NIT_NULL /*null*/;
-  goto return_label59;
-  return_label59: while(false);
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(11)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_274 != NIT_NULL) variable[8] = once_value_274;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool("), TAG_Int(9)) /*new String*/;
+    once_value_274 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  variable[8] =  variable[6] /*s*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_275 != NIT_NULL) variable[8] = once_value_275;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("VAL_ISA("), TAG_Int(8)) /*new String*/;
+    once_value_275 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  variable[8] =  variable[2] /*recv*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_276 != NIT_NULL) variable[8] = once_value_276;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_276 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_base___MMGlobalClass___color_id( variable[5] /*g*/)( variable[5] /*g*/) /*MMGlobalClass::color_id*/;
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_277 != NIT_NULL) variable[8] = once_value_277;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_277 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_base___MMGlobalClass___id_id( variable[5] /*g*/)( variable[5] /*g*/) /*MMGlobalClass::id_id*/;
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_278 != NIT_NULL) variable[8] = once_value_278;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")) /*cast "), TAG_Int(10)) /*new String*/;
+    once_value_278 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Ensure var variable[0]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_279 != NIT_NULL) variable[8] = once_value_279;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_279 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  variable[4] = variable[7];
+  goto return_label266;
+  return_label266: while(false);
   tracehead = trace.prev;
-  return variable[3];
+  return variable[4];
 }
-val_t compiling_methods___MMType___compile_cast(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 508, LOCATE_compiling_methods___MMType___compile_cast};
-  val_t variable[26];
-  void **closurevariable = NULL;
+void compiling_methods___MMType___compile_type_check(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
+  struct trace_t trace = {NULL, NULL, 652, LOCATE_compiling_methods___MMType___compile_type_check};
+  static val_t once_value_281 = NIT_NULL; /* Once value for string variable[8]*/
+      static val_t once_value_282 = NIT_NULL; /* Once value for string variable[9]*/
+      static val_t once_value_283 = NIT_NULL; /* Once value for string variable[9]*/
+      static val_t once_value_284 = NIT_NULL; /* Once value for string variable[9]*/
+      static val_t once_value_285 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_286 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_287 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_288 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_289 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_290 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_291 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_292 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_293 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_294 = NIT_NULL; /* Once value for string variable[9]*/
+  val_t variable[10];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
-  variable[5] = variable[0];
-  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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[8] =  variable[2] /*recv*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
-  variable[11] =  variable[2] /*recv*/;
-  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];
-  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];
-  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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[21]) /*AbstractArray::add*/;
-  variable[22] = variable[0];
-  variable[23] = variable[22];
-  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];
-  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);
+  /* Register variable[3]: Local variable */
+  variable[3] =  param2;
+  /* Register variable[4]: Local variable */
+  variable[4] =  param3;
+  /* Register variable[5]: Method return value and escape marker */
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
+  variable[7] = CALL_static_type___MMType___local_class(variable[0])(variable[0]) /*MMType::local_class*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___global(variable[7])(variable[7]) /*MMLocalClass::global*/;
+  variable[6] = variable[7];
+  /* Register variable[7]: Local variable */
+  /* Register variable[8]: Once String constant */
+  if (once_value_281 != NIT_NULL) variable[8] = once_value_281;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_281 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  variable[7] = variable[8];
+  /* Register variable[8]: Result */
+  variable[8] = CALL_static_type___MMType___is_nullable( variable[4] /*fromtype*/)( variable[4] /*fromtype*/) /*MMType::is_nullable*/;
+  if (UNTAG_Bool(variable[8])) { /*if*/
+    /* Register variable[8]: Result */
+    variable[8] = CALL_static_type___MMType___is_nullable(variable[0])(variable[0]) /*MMType::is_nullable*/;
+    if (UNTAG_Bool(variable[8])) { /*if*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+      /* Register variable[9]: Once String constant */
+      if (once_value_282 != NIT_NULL) variable[9] = once_value_282;
+      else {
+        variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+        once_value_282 = variable[9];
+      }
+      /* Register variable[9]: Result */
+      /* Ensure var variable[9]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+      variable[9] =  variable[2] /*recv*/ /* Ensure var: super-string element*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+      /* Register variable[9]: Once String constant */
+      if (once_value_283 != NIT_NULL) variable[9] = once_value_283;
+      else {
+        variable[9] = NEW_String_string___String___with_native(BOX_NativeString("!=NIT_NULL) && "), TAG_Int(15)) /*new String*/;
+        once_value_283 = variable[9];
+      }
+      /* Register variable[9]: Result */
+      /* Ensure var variable[9]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+      /* Register variable[8]: Result */
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      variable[7] = variable[8] /*s=*/;
+    } else { /*if*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+      /* Register variable[9]: Once String constant */
+      if (once_value_284 != NIT_NULL) variable[9] = once_value_284;
+      else {
+        variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+        once_value_284 = variable[9];
+      }
+      /* Register variable[9]: Result */
+      /* Ensure var variable[9]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+      variable[9] =  variable[2] /*recv*/ /* Ensure var: super-string element*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+      /* Register variable[9]: Once String constant */
+      if (once_value_285 != NIT_NULL) variable[9] = once_value_285;
+      else {
+        variable[9] = NEW_String_string___String___with_native(BOX_NativeString("==NIT_NULL) || "), TAG_Int(15)) /*new String*/;
+        once_value_285 = variable[9];
+      }
+      /* Register variable[9]: Result */
+      /* Ensure var variable[9]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+      /* Register variable[8]: Result */
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      variable[7] = variable[8] /*s=*/;
+    }
+  } else { /*if*/
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_286 != NIT_NULL) variable[9] = once_value_286;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+      once_value_286 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    variable[9] =  variable[2] /*recv*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_287 != NIT_NULL) variable[9] = once_value_287;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("!=NIT_NULL) && "), TAG_Int(15)) /*new String*/;
+      once_value_287 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[8]: Result */
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    variable[7] = variable[8] /*s=*/;
+  }
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(13)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_288 != NIT_NULL) variable[9] = once_value_288;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)) /*new String*/;
+    once_value_288 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  variable[9] =  variable[7] /*s*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_289 != NIT_NULL) variable[9] = once_value_289;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("!VAL_ISA("), TAG_Int(9)) /*new String*/;
+    once_value_289 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  variable[9] =  variable[2] /*recv*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_290 != NIT_NULL) variable[9] = once_value_290;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_290 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_base___MMGlobalClass___color_id( variable[6] /*g*/)( variable[6] /*g*/) /*MMGlobalClass::color_id*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_291 != NIT_NULL) variable[9] = once_value_291;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_291 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_base___MMGlobalClass___id_id( variable[6] /*g*/)( variable[6] /*g*/) /*MMGlobalClass::id_id*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_292 != NIT_NULL) variable[9] = once_value_292;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")) { fprintf(stderr, \"Cast failled\"); "), TAG_Int(38)) /*new String*/;
+    once_value_292 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*n*/) /*CompilerVisitor::printf_locate_error*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_293 != NIT_NULL) variable[9] = once_value_293;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" nit_exit(1); } /*cast "), TAG_Int(23)) /*new String*/;
+    once_value_293 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Ensure var variable[0]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_294 != NIT_NULL) variable[9] = once_value_294;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("*/;"), TAG_Int(3)) /*new String*/;
+    once_value_294 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
+  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*/;
+  return_label280: while(false);
   tracehead = trace.prev;
-  return variable[3];
+  return;
 }
-void compiling_methods___MMType___compile_type_check(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 517, LOCATE_compiling_methods___MMType___compile_type_check};
-  val_t variable[31];
-  void **closurevariable = NULL;
+void compiling_methods___MMType___compile_notnull_check(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
+  struct trace_t trace = {NULL, NULL, 671, LOCATE_compiling_methods___MMType___compile_notnull_check};
+    static val_t once_value_296 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_297 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_298 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_299 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Local variable */
   variable[3] =  param2;
-  variable[6] = variable[0];
-  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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
-  variable[9] =  variable[2] /*recv*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
-  variable[12] =  variable[2] /*recv*/;
-  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];
-  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];
-  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];
-  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];
-  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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[26]) /*AbstractArray::add*/;
-  variable[27] = variable[0];
-  variable[28] = variable[27];
-  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];
-  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);
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_static_type___MMType___is_nullable(variable[0])(variable[0]) /*MMType::is_nullable*/;
+  if (UNTAG_Bool(variable[5])) { /*if*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_296 != NIT_NULL) variable[6] = once_value_296;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("if (("), TAG_Int(5)) /*new String*/;
+      once_value_296 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    variable[6] =  variable[2] /*recv*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_297 != NIT_NULL) variable[6] = once_value_297;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("==NIT_NULL)) { fprintf(stderr, \"Cast failled\"); "), TAG_Int(48)) /*new String*/;
+      once_value_297 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*n*/) /*CompilerVisitor::printf_locate_error*/;
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_298 != NIT_NULL) variable[6] = once_value_298;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" nit_exit(1); } /*cast "), TAG_Int(23)) /*new String*/;
+      once_value_298 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Ensure var variable[0]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_299 != NIT_NULL) variable[6] = once_value_299;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("*/;"), TAG_Int(3)) /*new String*/;
+      once_value_299 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[5]: Result */
+    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___AMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 529, LOCATE_compiling_methods___AMethPropdef___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 683, LOCATE_compiling_methods___AMethPropdef___do_compile_inside};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **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, 529);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 683);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 void compiling_methods___PSignature___compile_parameters(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 534, LOCATE_compiling_methods___PSignature___compile_parameters};
+  struct trace_t trace = {NULL, NULL, 688, LOCATE_compiling_methods___PSignature___compile_parameters};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **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, 534);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 688);
   nit_exit(1);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___ASignature___compile_parameters(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 538, LOCATE_compiling_methods___ASignature___compile_parameters};
-  val_t variable[20];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 692, LOCATE_compiling_methods___ASignature___compile_parameters};
+      static val_t once_value_302 = NIT_NULL; /* Once value for string variable[11]*/
+      static val_t once_value_303 = NIT_NULL; /* Once value for string variable[11]*/
+      static val_t once_value_304 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_308 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_310 = NIT_NULL; /* Once value for string variable[11]*/
+  val_t variable[16];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Local variable */
   variable[3] =  param2;
-  variable[5] = variable[0];
-  variable[5] = CALL_parser_nodes___ASignature___n_params(variable[5])(variable[5]) /*ASignature::n_params*/;
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___ASignature___n_params(variable[0])(variable[0]) /*ASignature::n_params*/;
+  /* Register variable[5]: For iterator */
   variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*List::iterator*/;
   while (true) { /*for*/
+    /* Register variable[6]: For 'is_ok' result */
     variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ListIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ListIterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[7]: Local variable */
     variable[7] = variable[6];
+    /* Register variable[8]: Local variable */
+    /* Register variable[9]: Result */
     variable[9] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    /* Register variable[10]: Result */
     variable[10] = CALL_syntax_base___PParam___variable( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::variable*/;
+    /* Register variable[9]: Result */
     variable[9] = CALL_compiling_methods___CFunctionContext___register_variable(variable[9])(variable[9], variable[10]) /*CFunctionContext::register_variable*/;
     variable[8] = variable[9];
+    /* Register variable[9]: Result */
     variable[9] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[9]: Result */
     variable[9] = CALL_compiling_methods___NitMethodContext___method_params(variable[9])(variable[9]) /*NitMethodContext::method_params*/;
+    /* Register variable[10]: Result */
     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*/;
+    /* Register variable[9]: Local variable */
+    /* Register variable[10]: Result */
     variable[10] = CALL_syntax_base___PParam___position( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::position*/;
+    /* Register variable[10]: Result */
     variable[10] = CALL_static_type___MMSignature_____bra( variable[2] /*orig_sig*/)( variable[2] /*orig_sig*/, variable[10]) /*MMSignature::[]*/;
     variable[9] = variable[10];
+    /* Register variable[10]: Result */
     variable[10] = CALL_syntax_base___PParam___variable( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::variable*/;
+    /* Register variable[10]: Result */
     variable[10] = CALL_syntax_base___Variable___stype(variable[10])(variable[10]) /*Variable::stype*/;
+    /* Register variable[10]: Result */
     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_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];
-      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] = 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];
-      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
-      variable[17] =  variable[9] /*orig_type*/;
-      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];
-      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+      /* Register variable[11]: Once String constant */
+      if (once_value_302 != NIT_NULL) variable[11] = once_value_302;
+      else {
+        variable[11] = NEW_String_string___String___with_native(BOX_NativeString("/* check if p<"), TAG_Int(14)) /*new String*/;
+        once_value_302 = variable[11];
+      }
+      /* Register variable[11]: Result */
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[11]: Result */
+      variable[11] = CALL_syntax_base___PParam___variable( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::variable*/;
+      /* Register variable[11]: Result */
+      variable[11] = CALL_syntax_base___Variable___stype(variable[11])(variable[11]) /*Variable::stype*/;
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/) /*AbstractArray::add*/;
+      /* Register variable[11]: Once String constant */
+      if (once_value_303 != NIT_NULL) variable[11] = once_value_303;
+      else {
+        variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" with p:"), TAG_Int(8)) /*new String*/;
+        once_value_303 = variable[11];
+      }
+      /* Register variable[11]: Result */
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      variable[11] =  variable[9] /*orig_type*/ /* Ensure var: super-string element*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/) /*AbstractArray::add*/;
+      /* Register variable[11]: Once String constant */
+      if (once_value_304 != NIT_NULL) variable[11] = once_value_304;
+      else {
+        variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)) /*new String*/;
+        once_value_304 = variable[11];
+      }
+      /* Register variable[11]: Result */
+      /* Ensure var variable[11]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+      /* Register variable[10]: Result */
       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*/;
+      /* Register variable[10]: Result */
       variable[10] = CALL_syntax_base___PParam___variable( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::variable*/;
+      /* Register variable[10]: Result */
       variable[10] = CALL_syntax_base___Variable___stype(variable[10])(variable[10]) /*Variable::stype*/;
+      /* Register variable[11]: Result */
       variable[11] = CALL_syntax_base___PParam___position( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::position*/;
+      /* Register variable[12]: Local variable */
       variable[12] =  variable[3] /*params*/;
+      /* Register variable[13]: Local variable */
       variable[13] = variable[11];
+      /* Register variable[14]: Method return value and escape marker */
+      /* Register variable[15]: Result */
       variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-      variable[16] = variable[15];
-      if (UNTAG_Bool(variable[16])) { /* and */
-        variable[16] = variable[12];
-        variable[16] = ATTR_array___AbstractArray____length(variable[16]) /*AbstractArray::_length*/;
-        variable[16] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[16]));
+      /* Ensure var variable[15]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[15])) { /* and */
+        /* Register variable[15]: Result */
+        variable[15] = ATTR_array___AbstractArrayRead____length(variable[12]) /*AbstractArrayRead::_length*/;
+        /* Register variable[15]: Result */
+        variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[15]));
       }
-      variable[15] = variable[16];
-      if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[15] = variable[12];
-      variable[15] = ATTR_array___Array____items(variable[15]) /*Array::_items*/;
+      /* Register variable[15]: Result */
+      if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[15]: Result */
+      variable[15] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
+      /* Register variable[15]: Result */
       variable[15] = UNBOX_NativeArray(variable[15])[UNTAG_Int( variable[13] /*index*/)];
       variable[14] = variable[15];
-      goto return_label70;
-      return_label70: while(false);
+      goto return_label305;
+      return_label305: while(false);
+      /* Register variable[11]: Result */
       variable[11] = variable[14];
-      CALL_compiling_methods___MMType___compile_type_check(variable[10])(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*/,  variable[9] /*orig_type*/) /*MMType::compile_type_check*/;
     }
+    /* Register variable[10]: Result */
     variable[10] = CALL_syntax_base___PParam___position( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::position*/;
+    /* Register variable[11]: Local variable */
     variable[11] =  variable[3] /*params*/;
+    /* Register variable[12]: Local variable */
     variable[12] = variable[10];
+    /* Register variable[13]: Method return value and escape marker */
+    /* Register variable[14]: Result */
     variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[15] = variable[14];
-    if (UNTAG_Bool(variable[15])) { /* and */
-      variable[15] = variable[11];
-      variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-      variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+    /* Ensure var variable[14]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[14])) { /* and */
+      /* Register variable[14]: Result */
+      variable[14] = ATTR_array___AbstractArrayRead____length(variable[11]) /*AbstractArrayRead::_length*/;
+      /* Register variable[14]: Result */
+      variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[14]));
     }
-    variable[14] = variable[15];
-    if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[14] = variable[11];
-    variable[14] = ATTR_array___Array____items(variable[14]) /*Array::_items*/;
+    /* Register variable[14]: Result */
+    if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[14]: Result */
+    variable[14] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
+    /* Register variable[14]: Result */
     variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
     variable[13] = variable[14];
-    goto return_label71;
-    return_label71: while(false);
+    goto return_label306;
+    return_label306: while(false);
+    /* Register variable[10]: Result */
     variable[10] = variable[13];
     CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[8] /*cname*/, variable[10]) /*CompilerVisitor::add_assignment*/;
-    continue_69: while(0);
+    continue_301: while(0);
     CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ListIterator::next*/;
   }
-  break_69: while(0);
-  variable[5] = variable[0];
-  variable[5] = CALL_parser_nodes___ASignature___n_closure_decls(variable[5])(variable[5]) /*ASignature::n_closure_decls*/;
+  break_301: while(0);
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___ASignature___n_closure_decls(variable[0])(variable[0]) /*ASignature::n_closure_decls*/;
+  /* Register variable[5]: Result */
   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];
+  /* Register variable[5]: Result */
+  variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]) /*new Range[Int]*/;
+  /* Register variable[5]: For iterator */
   variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
   while (true) { /*for*/
+    /* Register variable[6]: For 'is_ok' result */
     variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[7]: Local variable */
     variable[7] = variable[6];
-    variable[9] = variable[0];
-    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::[]*/;
+    /* Register variable[8]: Local variable */
+    /* Register variable[9]: Result */
+    variable[9] = CALL_parser_nodes___ASignature___n_closure_decls(variable[0])(variable[0]) /*ASignature::n_closure_decls*/;
+    /* Register variable[9]: Result */
+    variable[9] = CALL_abstract_collection___MapRead_____bra(variable[9])(variable[9],  variable[7] /*i*/) /*List::[]*/;
     variable[8] = variable[9];
+    /* Register variable[9]: Local variable */
+    /* Register variable[10]: Result */
     variable[10] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    /* Register variable[11]: Result */
     variable[11] = CALL_syntax_base___PClosureDecl___variable( variable[8] /*wd*/)( variable[8] /*wd*/) /*PClosureDecl::variable*/;
+    /* Register variable[10]: Result */
     variable[10] = CALL_compiling_methods___CFunctionContext___register_closurevariable(variable[10])(variable[10], variable[11]) /*CFunctionContext::register_closurevariable*/;
     variable[9] = variable[10];
+    /* Register variable[10]: Result */
     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];
-    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];
-    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];
-    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*/;
+    /* Register variable[11]: Result */
+    variable[11] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[11]: Result */
+    variable[11] = CALL_compiling_methods___NitMethodContext___method(variable[11])(variable[11]) /*NitMethodContext::method*/;
+    /* Register variable[11]: Result */
+    variable[11] = CALL_compiling_methods___MMMethod___closure_cname(variable[11])(variable[11],  variable[7] /*i*/) /*MMMethod::closure_cname*/;
     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];
-    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];
-    variable[17] = TAG_Bool(UNTAG_Int( variable[15] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[18] = variable[17];
-    if (UNTAG_Bool(variable[18])) { /* and */
-      variable[18] = variable[14];
-      variable[18] = ATTR_array___AbstractArray____length(variable[18]) /*AbstractArray::_length*/;
-      variable[18] = TAG_Bool(UNTAG_Int( variable[15] /*index*/)<UNTAG_Int(variable[18]));
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[11]: Once String constant */
+    if (once_value_308 != NIT_NULL) variable[11] = once_value_308;
+    else {
+      variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_308 = variable[11];
     }
-    variable[17] = variable[18];
-    if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[17] = variable[14];
-    variable[17] = ATTR_array___Array____items(variable[17]) /*Array::_items*/;
-    variable[17] = UNBOX_NativeArray(variable[17])[UNTAG_Int( variable[15] /*index*/)];
-    variable[16] = variable[17];
-    goto return_label73;
-    return_label73: while(false);
-    variable[13] = variable[16];
-    variable[14] = variable[13];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
+    /* Register variable[11]: Result */
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Result */
+    variable[11] = CALL_static_type___MMSignature___arity( variable[2] /*orig_sig*/)( variable[2] /*orig_sig*/) /*MMSignature::arity*/;
+    /* Register variable[11]: Result */
+    variable[11] = TAG_Int(UNTAG_Int(variable[11])+UNTAG_Int( variable[7] /*i*/));
+    /* Register variable[12]: Local variable */
+    variable[12] =  variable[3] /*params*/;
+    /* Register variable[13]: Local variable */
+    variable[13] = variable[11];
+    /* Register variable[14]: Method return value and escape marker */
+    /* Register variable[15]: Result */
+    variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[15]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[15])) { /* and */
+      /* Register variable[15]: Result */
+      variable[15] = ATTR_array___AbstractArrayRead____length(variable[12]) /*AbstractArrayRead::_length*/;
+      /* Register variable[15]: Result */
+      variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)<UNTAG_Int(variable[15]));
+    }
+    /* Register variable[15]: Result */
+    if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[15]: Result */
+    variable[15] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
+    /* Register variable[15]: Result */
+    variable[15] = UNBOX_NativeArray(variable[15])[UNTAG_Int( variable[13] /*index*/)];
+    variable[14] = variable[15];
+    goto return_label309;
+    return_label309: while(false);
+    /* Register variable[11]: Result */
+    variable[11] = variable[14];
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Once String constant */
+    if (once_value_310 != NIT_NULL) variable[11] = once_value_310;
+    else {
+      variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_310 = variable[11];
+    }
+    /* Register variable[11]: Result */
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[10]: Result */
     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);
+    continue_307: while(0);
     CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
-  break_72: while(0);
-  return_label68: while(false);
+  break_307: while(0);
+  return_label300: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___AConcreteMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 562, LOCATE_compiling_methods___AConcreteMethPropdef___do_compile_inside};
-  val_t variable[18];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 716, LOCATE_compiling_methods___AConcreteMethPropdef___do_compile_inside};
+    static val_t once_value_313 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_314 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_315 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_316 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_317 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_318 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_319 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_320 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_321 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_322 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_323 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_324 = NIT_NULL; /* Once value for string variable[9]*/
+  val_t variable[11];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Local variable */
   variable[3] =  param2;
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
   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*/
+  /* Register variable[6]: Result */
+  variable[6] = NEW_NitMethodContext_compiling_methods___NitMethodContext___init( variable[2] /*method*/) /*new NitMethodContext*/;
   CALL_compiling_methods___CompilerVisitor___nmc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::nmc=*/;
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[8] = variable[0];
-  variable[8] = CALL_syntax_base___AMethPropdef___self_var(variable[8])(variable[8]) /*AMethPropdef::self_var*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_syntax_base___AMethPropdef___self_var(variable[0])(variable[0]) /*AMethPropdef::self_var*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___CFunctionContext___register_variable(variable[7])(variable[7], variable[8]) /*CFunctionContext::register_variable*/;
   variable[6] = variable[7];
+  /* Register variable[7]: Local variable */
   variable[7] =  variable[3] /*params*/;
+  /* Register variable[8]: Local variable */
   variable[8] =  TAG_Int(0);
+  /* Register variable[9]: Method return value and escape marker */
+  /* Register variable[10]: Result */
   variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-  variable[11] = variable[10];
-  if (UNTAG_Bool(variable[11])) { /* and */
-    variable[11] = variable[7];
-    variable[11] = ATTR_array___AbstractArray____length(variable[11]) /*AbstractArray::_length*/;
-    variable[11] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)<UNTAG_Int(variable[11]));
+  /* Ensure var variable[10]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[10])) { /* and */
+    /* Register variable[10]: Result */
+    variable[10] = ATTR_array___AbstractArrayRead____length(variable[7]) /*AbstractArrayRead::_length*/;
+    /* Register variable[10]: Result */
+    variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)<UNTAG_Int(variable[10]));
   }
-  variable[10] = variable[11];
-  if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[10] = variable[7];
-  variable[10] = ATTR_array___Array____items(variable[10]) /*Array::_items*/;
+  /* Register variable[10]: Result */
+  if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[10]: Result */
+  variable[10] = ATTR_array___Array____items(variable[7]) /*Array::_items*/;
+  /* Register variable[10]: Result */
   variable[10] = UNBOX_NativeArray(variable[10])[UNTAG_Int( variable[8] /*index*/)];
   variable[9] = variable[10];
-  goto return_label75;
-  return_label75: while(false);
+  goto return_label312;
+  return_label312: while(false);
+  /* Register variable[7]: Result */
   variable[7] = variable[9];
   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*/;
+  /* Register variable[7]: Result */
   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] = CALL_syntax_base___AMethPropdef___self_var(variable[9])(variable[9]) /*AMethPropdef::self_var*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[ParamVariable]*/ /* Ensure var: Literal array*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_syntax_base___AMethPropdef___self_var(variable[0])(variable[0]) /*AMethPropdef::self_var*/;
   CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   CALL_compiling_methods___NitMethodContext___method_params__eq(variable[7])(variable[7], variable[8]) /*NitMethodContext::method_params=*/;
-  variable[7] = variable[0];
-  variable[7] = CALL_parser_nodes___AMethPropdef___n_signature(variable[7])(variable[7]) /*AMethPropdef::n_signature*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_parser_nodes___AMethPropdef___n_signature(variable[0])(variable[0]) /*AMethPropdef::n_signature*/;
+  /* Register variable[7]: Result */
   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*/
+    /* Register variable[7]: Local variable */
+    /* Register variable[8]: Result */
     variable[8] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::global*/;
+    /* Register variable[8]: Result */
     variable[8] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[8])(variable[8]) /*MMGlobalProperty::intro*/;
     variable[7] = variable[8];
+    /* Register variable[8]: Local variable */
+    /* Register variable[9]: Result */
     variable[9] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+    /* Register variable[9]: Result */
     variable[9] = CALL_static_type___MMSignature___recv(variable[9])(variable[9]) /*MMSignature::recv*/;
+    /* Register variable[9]: Result */
     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] = CALL_parser_nodes___AMethPropdef___n_signature(variable[9])(variable[9]) /*AMethPropdef::n_signature*/;
+    /* Register variable[9]: Result */
+    variable[9] = CALL_parser_nodes___AMethPropdef___n_signature(variable[0])(variable[0]) /*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*/;
   }
+  /* Register variable[7]: Local variable */
   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*/;
+  /* Register variable[8]: Result */
+  variable[8] = TAG_Bool((variable[0]==NIT_NULL) || VAL_ISA(variable[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-    variable[11] =  variable[6] /*selfcname*/;
-    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];
-    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];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_313 != NIT_NULL) variable[9] = once_value_313;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("VAL2OBJ("), TAG_Int(8)) /*new String*/;
+      once_value_313 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    variable[9] =  variable[6] /*selfcname*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_314 != NIT_NULL) variable[9] = once_value_314;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")->vft["), TAG_Int(7)) /*new String*/;
+      once_value_314 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Result */
+    variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
+    /* Register variable[9]: Result */
+    variable[9] = CALL_abstractmetamodel___MMLocalClass___global(variable[9])(variable[9]) /*MMLocalClass::global*/;
+    /* Register variable[9]: Result */
+    variable[9] = CALL_compiling_base___MMGlobalClass___init_table_pos_id(variable[9])(variable[9]) /*MMGlobalClass::init_table_pos_id*/;
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_315 != NIT_NULL) variable[9] = once_value_315;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("].i"), TAG_Int(3)) /*new String*/;
+      once_value_315 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[8]: Result */
     variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
     variable[7] = variable[8] /*itpos=*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-    variable[11] =  variable[7] /*itpos*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_316 != NIT_NULL) variable[9] = once_value_316;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("if (init_table["), TAG_Int(15)) /*new String*/;
+      once_value_316 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    variable[9] =  variable[7] /*itpos*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_317 != NIT_NULL) variable[9] = once_value_317;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("]) return;"), TAG_Int(10)) /*new String*/;
+      once_value_317 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[8]: Result */
     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*/;
   }
+  /* Register variable[8]: Result */
   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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_318 != NIT_NULL) variable[10] = once_value_318;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("return_label"), TAG_Int(12)) /*new String*/;
+    once_value_318 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_319 != NIT_NULL) variable[10] = once_value_319;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_319 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
   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=*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[9]: Result */
   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*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_320 != NIT_NULL) variable[10] = once_value_320;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Method return value and escape marker"), TAG_Int(37)) /*new String*/;
+    once_value_320 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_methods___CFunctionContext___get_var(variable[9])(variable[9], variable[10]) /*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*/;
+  /* Register variable[8]: Result */
+  variable[8] = TAG_Bool((variable[0]==NIT_NULL) || VAL_ISA(variable[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
     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] = 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] = 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*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_parser_nodes___AConcreteMethPropdef___n_block(variable[0])(variable[0]) /*AConcreteMethPropdef::n_block*/;
+  CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::compile_stmt*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_321 != NIT_NULL) variable[9] = once_value_321;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_321 = variable[9];
   }
-  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
-  variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable[10] = variable[9];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-  variable[11] = CALL_compiling_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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_methods___NitMethodContext___return_label(variable[9])(variable[9]) /*NitMethodContext::return_label*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_322 != NIT_NULL) variable[9] = once_value_322;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(": while(false);"), TAG_Int(15)) /*new String*/;
+    once_value_322 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   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*/;
+  /* Register variable[8]: Result */
+  variable[8] = TAG_Bool((variable[0]==NIT_NULL) || VAL_ISA(variable[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
-    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("init_table["), TAG_Int(11)); /*new String*/
-    variable[10] = variable[9];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-    variable[11] =  variable[7] /*itpos*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_323 != NIT_NULL) variable[9] = once_value_323;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("init_table["), TAG_Int(11)) /*new String*/;
+      once_value_323 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    variable[9] =  variable[7] /*itpos*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_324 != NIT_NULL) variable[9] = once_value_324;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("] = 1;"), TAG_Int(6)) /*new String*/;
+      once_value_324 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[8]: Result */
     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*/;
   }
+  /* Register variable[8]: Local variable */
   variable[8] =  NIT_NULL /*null*/;
+  /* Register variable[9]: Result */
   variable[9] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+  /* Register variable[9]: Result */
   variable[9] = CALL_static_type___MMSignature___return_type(variable[9])(variable[9]) /*MMSignature::return_type*/;
+  /* Register variable[9]: Result */
   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*/
+    /* Register variable[9]: Result */
     variable[9] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[9]: Result */
     variable[9] = CALL_compiling_methods___NitMethodContext___return_value(variable[9])(variable[9]) /*NitMethodContext::return_value*/;
     variable[8] = variable[9] /*ret=*/;
   }
   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);
+  goto return_label311;
+  return_label311: while(false);
   tracehead = trace.prev;
   return variable[4];
 }
 val_t compiling_methods___ADeferredMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 609, LOCATE_compiling_methods___ADeferredMethPropdef___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 761, LOCATE_compiling_methods___ADeferredMethPropdef___do_compile_inside};
+  static val_t once_value_326 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_327 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_328 = NIT_NULL; /* Once value for string variable[5]*/
   val_t variable[6];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Local variable */
   variable[3] =  param2;
-  variable[5] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Deferred method called\");"), TAG_Int(42)); /*new String*/
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Once String constant */
+  if (once_value_326 != NIT_NULL) variable[5] = once_value_326;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Deferred method called\");"), TAG_Int(42)) /*new String*/;
+    once_value_326 = variable[5];
+  }
+  /* Register variable[5]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
-  variable[5] = variable[0];
-  variable[5] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::printf_locate_error*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/, variable[0]) /*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*/
+  /* Register variable[5]: Once String constant */
+  if (once_value_327 != NIT_NULL) variable[5] = once_value_327;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("nit_exit(1);"), TAG_Int(12)) /*new String*/;
+    once_value_327 = variable[5];
+  }
+  /* Register variable[5]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_static_type___MMSignature___return_type(variable[5])(variable[5]) /*MMSignature::return_type*/;
+  /* Register variable[5]: Result */
   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*/
+    /* Register variable[5]: Once String constant */
+    if (once_value_328 != NIT_NULL) variable[5] = once_value_328;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString("NIT_NULL"), TAG_Int(8)) /*new String*/;
+      once_value_328 = variable[5];
+    }
+    /* Register variable[5]: Result */
     variable[4] = variable[5];
-    goto return_label76;
+    goto return_label325;
   } else { /*if*/
     variable[4] =  NIT_NULL /*null*/;
-    goto return_label76;
+    goto return_label325;
   }
-  return_label76: while(false);
+  return_label325: while(false);
   tracehead = trace.prev;
   return variable[4];
 }
 val_t compiling_methods___AExternMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 623, LOCATE_compiling_methods___AExternMethPropdef___do_compile_inside};
-  val_t variable[29];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 775, LOCATE_compiling_methods___AExternMethPropdef___do_compile_inside};
+  static val_t once_value_330 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_331 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_332 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_333 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_334 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_335 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_336 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_337 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_338 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_342 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_343 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_344 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_345 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_346 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_347 = NIT_NULL; /* Once value for string variable[10]*/
+  val_t variable[17];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Local variable */
   variable[3] =  param2;
-  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];
-  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] = 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];
-  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] = 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];
-  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] = 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];
-  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] = 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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[28]) /*AbstractArray::add*/;
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Local variable */
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(11)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_330 != NIT_NULL) variable[7] = once_value_330;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_330 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___module( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::module*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMModule___name(variable[7])(variable[7]) /*MMModule::name*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_331 != NIT_NULL) variable[7] = once_value_331;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
+    once_value_331 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[7])(variable[7]) /*MMLocalClass::name*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_332 != NIT_NULL) variable[7] = once_value_332;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
+    once_value_332 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[7])(variable[7]) /*MMLocalClass::name*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_333 != NIT_NULL) variable[7] = once_value_333;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
+    once_value_333 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::name*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_334 != NIT_NULL) variable[7] = once_value_334;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
+    once_value_334 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_static_type___MMSignature___arity(variable[7])(variable[7]) /*MMSignature::arity*/;
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_335 != NIT_NULL) variable[7] = once_value_335;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_335 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
   variable[5] = variable[6];
-  variable[6] = variable[0];
-  variable[6] = CALL_parser_nodes___AExternMethPropdef___n_extern(variable[6])(variable[6]) /*AExternMethPropdef::n_extern*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_parser_nodes___AExternMethPropdef___n_extern(variable[0])(variable[0]) /*AExternMethPropdef::n_extern*/;
+  /* Register variable[6]: Result */
   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] = CALL_parser_nodes___AExternMethPropdef___n_extern(variable[6])(variable[6]) /*AExternMethPropdef::n_extern*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_parser_nodes___AExternMethPropdef___n_extern(variable[0])(variable[0]) /*AExternMethPropdef::n_extern*/;
+    /* Register variable[6]: Result */
     variable[6] = CALL_lexer___Token___text(variable[6])(variable[6]) /*Token::text*/;
     variable[5] = variable[6] /*ename=*/;
-    variable[6] = CALL_abstract_collection___Collection___length( variable[5] /*ename*/)( variable[5] /*ename*/) /*AbstractArray::length*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_abstract_collection___Collection___length( variable[5] /*ename*/)( variable[5] /*ename*/) /*AbstractArrayRead::length*/;
+    /* Register variable[6]: Result */
     variable[6] = TAG_Int(UNTAG_Int(variable[6])-UNTAG_Int( TAG_Int(2)));
-    variable[6] = CALL_string___String___substring( variable[5] /*ename*/)( variable[5] /*ename*/,  TAG_Int(1), variable[6]) /*String::substring*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_string___AbstractString___substring( variable[5] /*ename*/)( variable[5] /*ename*/,  TAG_Int(1), variable[6]) /*AbstractString::substring*/;
     variable[5] = variable[6] /*ename=*/;
   }
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
   variable[7] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
   variable[6] = variable[7];
-  variable[7] = CALL_abstract_collection___Collection___length( variable[3] /*params*/)( variable[3] /*params*/) /*AbstractArray::length*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_abstract_collection___Collection___length( variable[3] /*params*/)( variable[3] /*params*/) /*AbstractArrayRead::length*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_static_type___MMSignature___arity( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::arity*/;
+  /* Register variable[8]: Result */
   variable[8] = TAG_Int(UNTAG_Int(variable[8])+UNTAG_Int( TAG_Int(1)));
+  /* Register variable[7]: Result */
   variable[7] = TAG_Bool((variable[7])!=(variable[8]));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = variable[0];
-    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];
-    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] = 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];
-    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] = 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];
-    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[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[8]: Once String constant */
+    if (once_value_336 != NIT_NULL) variable[8] = once_value_336;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("par:"), TAG_Int(4)) /*new String*/;
+      once_value_336 = variable[8];
+    }
+    /* Register variable[8]: Result */
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    /* Register variable[8]: Result */
+    variable[8] = CALL_abstract_collection___Collection___length( variable[3] /*params*/)( variable[3] /*params*/) /*AbstractArrayRead::length*/;
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[8]: Once String constant */
+    if (once_value_337 != NIT_NULL) variable[8] = once_value_337;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" sig:"), TAG_Int(5)) /*new String*/;
+      once_value_337 = variable[8];
+    }
+    /* Register variable[8]: Result */
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    /* Register variable[8]: Result */
+    variable[8] = CALL_static_type___MMSignature___arity( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::arity*/;
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[8]: Once String constant */
+    if (once_value_338 != NIT_NULL) variable[8] = once_value_338;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_338 = variable[8];
+    }
+    /* Register variable[8]: Result */
+    /* Ensure var variable[8]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    /* Register variable[7]: Result */
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_parser_prod___PNode___printl(variable[0])(variable[0], variable[7]) /*PNode::printl*/;
   }
-  variable[8] = NEW_Array_array___Array___init(); /*new Array[String]*/
+  /* Register variable[7]: Local variable */
+  /* Register variable[8]: Result */
+  variable[8] = NEW_Array_array___Array___init() /*new Array[String]*/;
   variable[7] = variable[8];
+  /* Register variable[8]: Result */
   variable[8] = CALL_static_type___MMSignature___recv( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::recv*/;
+  /* Register variable[9]: Local variable */
   variable[9] =  variable[3] /*params*/;
+  /* Register variable[10]: Local variable */
   variable[10] =  TAG_Int(0);
+  /* Register variable[11]: Method return value and escape marker */
+  /* Register variable[12]: Result */
   variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-  variable[13] = variable[12];
-  if (UNTAG_Bool(variable[13])) { /* and */
-    variable[13] = variable[9];
-    variable[13] = ATTR_array___AbstractArray____length(variable[13]) /*AbstractArray::_length*/;
-    variable[13] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[13]));
+  /* Ensure var variable[12]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[12])) { /* and */
+    /* Register variable[12]: Result */
+    variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+    /* Register variable[12]: Result */
+    variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
   }
-  variable[12] = variable[13];
-  if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[12] = variable[9];
-  variable[12] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
+  /* Register variable[12]: Result */
+  if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[12]: Result */
+  variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+  /* Register variable[12]: Result */
   variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
   variable[11] = variable[12];
-  goto return_label78;
-  return_label78: while(false);
+  goto return_label339;
+  return_label339: while(false);
+  /* Register variable[9]: Result */
   variable[9] = variable[11];
+  /* Register variable[8]: Result */
   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*/;
+  /* Register variable[8]: Result */
   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];
+  /* Register variable[8]: Result */
+  variable[8] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[8]) /*new Range[Int]*/;
+  /* Register variable[8]: For iterator */
   variable[8] = CALL_abstract_collection___Collection___iterator(variable[8])(variable[8]) /*Range::iterator*/;
   while (true) { /*for*/
+    /* Register variable[9]: For 'is_ok' result */
     variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[9])) break; /*for*/
-    variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*Iterator::item*/;
+    variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[10]: Local variable */
     variable[10] = variable[9];
+    /* Register variable[11]: Result */
     variable[11] = CALL_static_type___MMSignature_____bra( variable[6] /*sig*/)( variable[6] /*sig*/,  variable[10] /*i*/) /*MMSignature::[]*/;
+    /* Register variable[12]: Result */
     variable[12] = TAG_Int(UNTAG_Int( variable[10] /*i*/)+UNTAG_Int( TAG_Int(1)));
+    /* Register variable[13]: Local variable */
     variable[13] =  variable[3] /*params*/;
+    /* Register variable[14]: Local variable */
     variable[14] = variable[12];
+    /* Register variable[15]: Method return value and escape marker */
+    /* Register variable[16]: Result */
     variable[16] = TAG_Bool(UNTAG_Int( variable[14] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[17] = variable[16];
-    if (UNTAG_Bool(variable[17])) { /* and */
-      variable[17] = variable[13];
-      variable[17] = ATTR_array___AbstractArray____length(variable[17]) /*AbstractArray::_length*/;
-      variable[17] = TAG_Bool(UNTAG_Int( variable[14] /*index*/)<UNTAG_Int(variable[17]));
+    /* Ensure var variable[16]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[16])) { /* and */
+      /* Register variable[16]: Result */
+      variable[16] = ATTR_array___AbstractArrayRead____length(variable[13]) /*AbstractArrayRead::_length*/;
+      /* Register variable[16]: Result */
+      variable[16] = TAG_Bool(UNTAG_Int( variable[14] /*index*/)<UNTAG_Int(variable[16]));
     }
-    variable[16] = variable[17];
-    if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[16] = variable[13];
-    variable[16] = ATTR_array___Array____items(variable[16]) /*Array::_items*/;
+    /* Register variable[16]: Result */
+    if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[16]: Result */
+    variable[16] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
+    /* Register variable[16]: Result */
     variable[16] = UNBOX_NativeArray(variable[16])[UNTAG_Int( variable[14] /*index*/)];
     variable[15] = variable[16];
-    goto return_label80;
-    return_label80: while(false);
+    goto return_label341;
+    return_label341: while(false);
+    /* Register variable[12]: Result */
     variable[12] = variable[15];
+    /* Register variable[11]: Result */
     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);
+    continue_340: while(0);
     CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*Iterator::next*/;
   }
-  break_79: while(0);
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-  variable[12] =  variable[5] /*ename*/;
-  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];
-  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] = CALL_string___Collection___join( variable[7] /*args*/)( variable[7] /*args*/, variable[15]) /*Collection::join*/;
-  variable[16] = variable[15];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+  break_340: while(0);
+  /* Register variable[8]: Local variable */
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_342 != NIT_NULL) variable[10] = once_value_342;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_342 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[5] /*ename*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_343 != NIT_NULL) variable[10] = once_value_343;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_343 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_344 != NIT_NULL) variable[10] = once_value_344;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_344 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Register variable[10]: Result */
+  variable[10] = CALL_string___Collection___join( variable[7] /*args*/)( variable[7] /*args*/, variable[10]) /*Collection::join*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_345 != NIT_NULL) variable[10] = once_value_345;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_345 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
   variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
   variable[8] = variable[9];
+  /* Register variable[9]: Result */
   variable[9] = CALL_static_type___MMSignature___return_type( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::return_type*/;
+  /* Register variable[9]: Result */
   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*/
+    /* Register variable[9]: Result */
     variable[9] = CALL_static_type___MMSignature___return_type( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::return_type*/;
+    /* Register variable[9]: Result */
     variable[9] = CALL_compiling_base___MMType___boxtype(variable[9])(variable[9],  variable[8] /*s*/) /*MMType::boxtype*/;
     variable[4] = variable[9];
-    goto return_label77;
+    goto return_label329;
   } else { /*if*/
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-    variable[12] =  variable[8] /*s*/;
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
-    variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
-    variable[14] = variable[13];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_346 != NIT_NULL) variable[10] = once_value_346;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_346 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    variable[10] =  variable[8] /*s*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_347 != NIT_NULL) variable[10] = once_value_347;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_347 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[9]: Result */
     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;
+    goto return_label329;
   }
-  return_label77: while(false);
+  return_label329: while(false);
   tracehead = trace.prev;
   return variable[4];
 }
 val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 650, LOCATE_compiling_methods___AInternMethPropdef___do_compile_inside};
-  static val_t once_value_82; static int once_bool_82; /* Once value for variable[8]*/
-    static val_t once_value_83; static int once_bool_83; /* Once value for variable[8]*/
-      static val_t once_value_85; static int once_bool_85; /* Once value for variable[8]*/
-        static val_t once_value_87; static int once_bool_87; /* Once value for variable[8]*/
-          static val_t once_value_89; static int once_bool_89; /* Once value for variable[8]*/
-            static val_t once_value_91; static int once_bool_91; /* Once value for variable[8]*/
-              static val_t once_value_93; static int once_bool_93; /* Once value for variable[8]*/
-               static val_t once_value_95; static int once_bool_95; /* Once value for variable[8]*/
-               static val_t once_value_97; static int once_bool_97; /* Once value for variable[8]*/
-               static val_t once_value_100; static int once_bool_100; /* Once value for variable[8]*/
-               static val_t once_value_103; static int once_bool_103; /* Once value for variable[8]*/
-               static val_t once_value_106; static int once_bool_106; /* Once value for variable[8]*/
-               static val_t once_value_109; static int once_bool_109; /* Once value for variable[8]*/
-               static val_t once_value_112; static int once_bool_112; /* Once value for variable[8]*/
-               static val_t once_value_115; static int once_bool_115; /* Once value for variable[8]*/
-               static val_t once_value_118; static int once_bool_118; /* Once value for variable[8]*/
-               static val_t once_value_121; static int once_bool_121; /* Once value for variable[8]*/
-               static val_t once_value_124; static int once_bool_124; /* Once value for variable[8]*/
-               static val_t once_value_127; static int once_bool_127; /* Once value for variable[8]*/
-               static val_t once_value_130; static int once_bool_130; /* Once value for variable[8]*/
-               static val_t once_value_133; static int once_bool_133; /* Once value for variable[8]*/
-    static val_t once_value_136; static int once_bool_136; /* Once value for variable[8]*/
-      static val_t once_value_137; static int once_bool_137; /* Once value for variable[8]*/
-        static val_t once_value_139; static int once_bool_139; /* Once value for variable[8]*/
-          static val_t once_value_141; static int once_bool_141; /* Once value for variable[8]*/
-            static val_t once_value_143; static int once_bool_143; /* Once value for variable[8]*/
-              static val_t once_value_145; static int once_bool_145; /* Once value for variable[8]*/
-               static val_t once_value_148; static int once_bool_148; /* Once value for variable[8]*/
-               static val_t once_value_151; static int once_bool_151; /* Once value for variable[8]*/
-               static val_t once_value_154; static int once_bool_154; /* Once value for variable[8]*/
-               static val_t once_value_157; static int once_bool_157; /* Once value for variable[8]*/
-               static val_t once_value_160; static int once_bool_160; /* Once value for variable[8]*/
-               static val_t once_value_163; static int once_bool_163; /* Once value for variable[8]*/
-               static val_t once_value_166; static int once_bool_166; /* Once value for variable[8]*/
-      static val_t once_value_169; static int once_bool_169; /* Once value for variable[8]*/
-        static val_t once_value_170; static int once_bool_170; /* Once value for variable[8]*/
-          static val_t once_value_172; static int once_bool_172; /* Once value for variable[8]*/
-            static val_t once_value_174; static int once_bool_174; /* Once value for variable[8]*/
-              static val_t once_value_176; static int once_bool_176; /* Once value for variable[8]*/
-               static val_t once_value_178; static int once_bool_178; /* Once value for variable[8]*/
-               static val_t once_value_180; static int once_bool_180; /* Once value for variable[8]*/
-               static val_t once_value_182; static int once_bool_182; /* Once value for variable[8]*/
-               static val_t once_value_184; static int once_bool_184; /* Once value for variable[8]*/
-               static val_t once_value_187; static int once_bool_187; /* Once value for variable[8]*/
-               static val_t once_value_190; static int once_bool_190; /* Once value for variable[8]*/
-               static val_t once_value_193; static int once_bool_193; /* Once value for variable[8]*/
-               static val_t once_value_196; static int once_bool_196; /* Once value for variable[8]*/
-               static val_t once_value_199; static int once_bool_199; /* Once value for variable[8]*/
-               static val_t once_value_202; static int once_bool_202; /* Once value for variable[8]*/
-               static val_t once_value_205; static int once_bool_205; /* Once value for variable[8]*/
-               static val_t once_value_208; static int once_bool_208; /* Once value for variable[8]*/
-               static val_t once_value_211; static int once_bool_211; /* Once value for variable[8]*/
-               static val_t once_value_214; static int once_bool_214; /* Once value for variable[8]*/
-        static val_t once_value_217; static int once_bool_217; /* Once value for variable[8]*/
-          static val_t once_value_218; static int once_bool_218; /* Once value for variable[8]*/
-            static val_t once_value_220; static int once_bool_220; /* Once value for variable[8]*/
-              static val_t once_value_222; static int once_bool_222; /* Once value for variable[8]*/
-               static val_t once_value_224; static int once_bool_224; /* Once value for variable[8]*/
-               static val_t once_value_226; static int once_bool_226; /* Once value for variable[8]*/
-               static val_t once_value_228; static int once_bool_228; /* Once value for variable[8]*/
-               static val_t once_value_231; static int once_bool_231; /* Once value for variable[8]*/
-          static val_t once_value_234; static int once_bool_234; /* Once value for variable[8]*/
-            static val_t once_value_235; static int once_bool_235; /* Once value for variable[8]*/
-              static val_t once_value_237; static int once_bool_237; /* Once value for variable[8]*/
-               static val_t once_value_240; static int once_bool_240; /* Once value for variable[8]*/
-               static val_t once_value_244; static int once_bool_244; /* Once value for variable[8]*/
-            static val_t once_value_248; static int once_bool_248; /* Once value for variable[8]*/
-              static val_t once_value_249; static int once_bool_249; /* Once value for variable[8]*/
-               static val_t once_value_251; static int once_bool_251; /* Once value for variable[8]*/
-               static val_t once_value_253; static int once_bool_253; /* Once value for variable[8]*/
-               static val_t once_value_256; static int once_bool_256; /* Once value for variable[8]*/
-               static val_t once_value_260; static int once_bool_260; /* Once value for variable[8]*/
-              static val_t once_value_266; static int once_bool_266; /* Once value for variable[8]*/
-               static val_t once_value_268; static int once_bool_268; /* Once value for variable[8]*/
-               static val_t once_value_269; static int once_bool_269; /* Once value for variable[8]*/
-               static val_t once_value_272; static int once_bool_272; /* Once value for variable[8]*/
-               static val_t once_value_274; static int once_bool_274; /* Once value for variable[8]*/
-               static val_t once_value_276; static int once_bool_276; /* Once value for variable[8]*/
-  val_t variable[32];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 802, LOCATE_compiling_methods___AInternMethPropdef___do_compile_inside};
+  static val_t once_value_349; static int once_bool_349; /* Once value for variable[8]*/
+    static val_t once_value_350 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_351; static int once_bool_351; /* Once value for variable[8]*/
+      static val_t once_value_352 = NIT_NULL; /* Once value for string variable[8]*/
+      static val_t once_value_353 = NIT_NULL; /* Once value for string variable[9]*/
+      static val_t once_value_355 = NIT_NULL; /* Once value for string variable[9]*/
+      static val_t once_value_356; static int once_bool_356; /* Once value for variable[8]*/
+        static val_t once_value_357 = NIT_NULL; /* Once value for string variable[8]*/
+        static val_t once_value_358 = NIT_NULL; /* Once value for string variable[9]*/
+        static val_t once_value_360 = NIT_NULL; /* Once value for string variable[9]*/
+        static val_t once_value_361; static int once_bool_361; /* Once value for variable[8]*/
+          static val_t once_value_362 = NIT_NULL; /* Once value for string variable[8]*/
+          static val_t once_value_363 = NIT_NULL; /* Once value for string variable[9]*/
+          static val_t once_value_365 = NIT_NULL; /* Once value for string variable[9]*/
+          static val_t once_value_366; static int once_bool_366; /* Once value for variable[8]*/
+            static val_t once_value_367 = NIT_NULL; /* Once value for string variable[8]*/
+            static val_t once_value_368 = NIT_NULL; /* Once value for string variable[9]*/
+            static val_t once_value_370 = NIT_NULL; /* Once value for string variable[9]*/
+            static val_t once_value_371; static int once_bool_371; /* Once value for variable[8]*/
+              static val_t once_value_372 = NIT_NULL; /* Once value for string variable[8]*/
+              static val_t once_value_373 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_375 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_376; static int once_bool_376; /* Once value for variable[8]*/
+               static val_t once_value_377 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_378 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_380 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_381; static int once_bool_381; /* Once value for variable[8]*/
+               static val_t once_value_382 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_383 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_385 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_386; static int once_bool_386; /* Once value for variable[8]*/
+               static val_t once_value_387 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_388 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_390 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_392 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_393; static int once_bool_393; /* Once value for variable[8]*/
+               static val_t once_value_394 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_395 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_397 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_399 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_400; static int once_bool_400; /* Once value for variable[8]*/
+               static val_t once_value_401 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_402 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_404 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_406 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_407; static int once_bool_407; /* Once value for variable[8]*/
+               static val_t once_value_408 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_409 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_411 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_413 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_414; static int once_bool_414; /* Once value for variable[8]*/
+               static val_t once_value_415 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_416 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_418 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_420 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_421; static int once_bool_421; /* Once value for variable[8]*/
+               static val_t once_value_422 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_423 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_425 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_427 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_428; static int once_bool_428; /* Once value for variable[8]*/
+               static val_t once_value_429 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_430 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_432 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_434 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_435; static int once_bool_435; /* Once value for variable[8]*/
+               static val_t once_value_436 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_437 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_439 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_441 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_442; static int once_bool_442; /* Once value for variable[8]*/
+               static val_t once_value_443 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_444 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_446 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_448 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_449; static int once_bool_449; /* Once value for variable[8]*/
+               static val_t once_value_450 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_451 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_453 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_455 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_456; static int once_bool_456; /* Once value for variable[8]*/
+               static val_t once_value_457 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_458 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_460 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_462 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_463; static int once_bool_463; /* Once value for variable[8]*/
+               static val_t once_value_464 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_465 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_467 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_469 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_470; static int once_bool_470; /* Once value for variable[8]*/
+               static val_t once_value_471 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_472 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_474 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_476 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_477; static int once_bool_477; /* Once value for variable[8]*/
+      static val_t once_value_478 = NIT_NULL; /* Once value for string variable[8]*/
+      static val_t once_value_479; static int once_bool_479; /* Once value for variable[8]*/
+        static val_t once_value_480 = NIT_NULL; /* Once value for string variable[8]*/
+        static val_t once_value_481 = NIT_NULL; /* Once value for string variable[9]*/
+        static val_t once_value_483 = NIT_NULL; /* Once value for string variable[9]*/
+        static val_t once_value_484; static int once_bool_484; /* Once value for variable[8]*/
+          static val_t once_value_485 = NIT_NULL; /* Once value for string variable[8]*/
+          static val_t once_value_486 = NIT_NULL; /* Once value for string variable[9]*/
+          static val_t once_value_488 = NIT_NULL; /* Once value for string variable[9]*/
+          static val_t once_value_489; static int once_bool_489; /* Once value for variable[8]*/
+            static val_t once_value_490 = NIT_NULL; /* Once value for string variable[8]*/
+            static val_t once_value_491 = NIT_NULL; /* Once value for string variable[9]*/
+            static val_t once_value_493 = NIT_NULL; /* Once value for string variable[9]*/
+            static val_t once_value_494; static int once_bool_494; /* Once value for variable[8]*/
+              static val_t once_value_495 = NIT_NULL; /* Once value for string variable[8]*/
+              static val_t once_value_496 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_498 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_499; static int once_bool_499; /* Once value for variable[8]*/
+               static val_t once_value_500 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_501 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_503 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_505 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_506; static int once_bool_506; /* Once value for variable[8]*/
+               static val_t once_value_507 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_508 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_510 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_512 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_513; static int once_bool_513; /* Once value for variable[8]*/
+               static val_t once_value_514 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_515 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_517 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_519 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_520; static int once_bool_520; /* Once value for variable[8]*/
+               static val_t once_value_521 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_522 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_524 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_526 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_527; static int once_bool_527; /* Once value for variable[8]*/
+               static val_t once_value_528 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_529 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_531 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_533 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_534; static int once_bool_534; /* Once value for variable[8]*/
+               static val_t once_value_535 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_536 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_538 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_540 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_541; static int once_bool_541; /* Once value for variable[8]*/
+               static val_t once_value_542 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_543 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_545 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_547 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_548; static int once_bool_548; /* Once value for variable[8]*/
+               static val_t once_value_549 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_550 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_552 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_554 = NIT_NULL; /* Once value for string variable[9]*/
+      static val_t once_value_555; static int once_bool_555; /* Once value for variable[8]*/
+        static val_t once_value_556 = NIT_NULL; /* Once value for string variable[8]*/
+        static val_t once_value_557; static int once_bool_557; /* Once value for variable[8]*/
+          static val_t once_value_558 = NIT_NULL; /* Once value for string variable[8]*/
+          static val_t once_value_559 = NIT_NULL; /* Once value for string variable[9]*/
+          static val_t once_value_561 = NIT_NULL; /* Once value for string variable[9]*/
+          static val_t once_value_562; static int once_bool_562; /* Once value for variable[8]*/
+            static val_t once_value_563 = NIT_NULL; /* Once value for string variable[8]*/
+            static val_t once_value_564 = NIT_NULL; /* Once value for string variable[9]*/
+            static val_t once_value_566 = NIT_NULL; /* Once value for string variable[9]*/
+            static val_t once_value_567; static int once_bool_567; /* Once value for variable[8]*/
+              static val_t once_value_568 = NIT_NULL; /* Once value for string variable[8]*/
+              static val_t once_value_569 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_571 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_572; static int once_bool_572; /* Once value for variable[8]*/
+               static val_t once_value_573 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_574 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_576 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_577; static int once_bool_577; /* Once value for variable[8]*/
+               static val_t once_value_578 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_579 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_581 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_582; static int once_bool_582; /* Once value for variable[8]*/
+               static val_t once_value_583 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_584 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_586 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_587; static int once_bool_587; /* Once value for variable[8]*/
+               static val_t once_value_588 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_589 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_591 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_592; static int once_bool_592; /* Once value for variable[8]*/
+               static val_t once_value_593 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_594 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_596 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_598 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_599; static int once_bool_599; /* Once value for variable[8]*/
+               static val_t once_value_600 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_601 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_603 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_605 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_606; static int once_bool_606; /* Once value for variable[8]*/
+               static val_t once_value_607 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_608 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_610 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_612 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_613; static int once_bool_613; /* Once value for variable[8]*/
+               static val_t once_value_614 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_615 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_617 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_619 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_620; static int once_bool_620; /* Once value for variable[8]*/
+               static val_t once_value_621 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_622 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_624 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_626 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_627; static int once_bool_627; /* Once value for variable[8]*/
+               static val_t once_value_628 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_629 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_631 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_633 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_634; static int once_bool_634; /* Once value for variable[8]*/
+               static val_t once_value_635 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_636 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_638 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_640 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_641; static int once_bool_641; /* Once value for variable[8]*/
+               static val_t once_value_642 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_643 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_645 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_647 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_648; static int once_bool_648; /* Once value for variable[8]*/
+               static val_t once_value_649 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_650 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_652 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_654 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_655; static int once_bool_655; /* Once value for variable[8]*/
+               static val_t once_value_656 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_657 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_659 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_661 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_662; static int once_bool_662; /* Once value for variable[8]*/
+               static val_t once_value_663 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_664 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_666 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_668 = NIT_NULL; /* Once value for string variable[9]*/
+        static val_t once_value_669; static int once_bool_669; /* Once value for variable[8]*/
+          static val_t once_value_670 = NIT_NULL; /* Once value for string variable[8]*/
+          static val_t once_value_671; static int once_bool_671; /* Once value for variable[8]*/
+            static val_t once_value_672 = NIT_NULL; /* Once value for string variable[8]*/
+            static val_t once_value_673 = NIT_NULL; /* Once value for string variable[9]*/
+            static val_t once_value_675 = NIT_NULL; /* Once value for string variable[9]*/
+            static val_t once_value_676; static int once_bool_676; /* Once value for variable[8]*/
+              static val_t once_value_677 = NIT_NULL; /* Once value for string variable[8]*/
+              static val_t once_value_678 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_680 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_681; static int once_bool_681; /* Once value for variable[8]*/
+               static val_t once_value_682 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_683 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_685 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_686; static int once_bool_686; /* Once value for variable[8]*/
+               static val_t once_value_687 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_688 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_690 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_691; static int once_bool_691; /* Once value for variable[8]*/
+               static val_t once_value_692 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_693 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_695 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_696; static int once_bool_696; /* Once value for variable[8]*/
+               static val_t once_value_697 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_698 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_700 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_702 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_703; static int once_bool_703; /* Once value for variable[8]*/
+               static val_t once_value_704 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_705 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_707 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_709 = NIT_NULL; /* Once value for string variable[9]*/
+          static val_t once_value_710; static int once_bool_710; /* Once value for variable[8]*/
+            static val_t once_value_711 = NIT_NULL; /* Once value for string variable[8]*/
+            static val_t once_value_712; static int once_bool_712; /* Once value for variable[8]*/
+              static val_t once_value_713 = NIT_NULL; /* Once value for string variable[8]*/
+              static val_t once_value_714 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_716 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_717; static int once_bool_717; /* Once value for variable[8]*/
+               static val_t once_value_718 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_719 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_721 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_723 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_724; static int once_bool_724; /* Once value for variable[8]*/
+               static val_t once_value_725 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_726 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_728 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_730 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_732 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_733; static int once_bool_733; /* Once value for variable[8]*/
+               static val_t once_value_734 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_735 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_737 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_739 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_741 = NIT_NULL; /* Once value for string variable[9]*/
+            static val_t once_value_742; static int once_bool_742; /* Once value for variable[8]*/
+              static val_t once_value_743 = NIT_NULL; /* Once value for string variable[8]*/
+              static val_t once_value_744; static int once_bool_744; /* Once value for variable[8]*/
+               static val_t once_value_745 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_746 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_748 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_749; static int once_bool_749; /* Once value for variable[8]*/
+               static val_t once_value_750 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_751 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_753 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_754; static int once_bool_754; /* Once value for variable[8]*/
+               static val_t once_value_755 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_756 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_758 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_760 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_761; static int once_bool_761; /* Once value for variable[8]*/
+               static val_t once_value_762 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_763 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_765 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_767 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_769 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_770; static int once_bool_770; /* Once value for variable[8]*/
+               static val_t once_value_771 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_772 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_774 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_776 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_778 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_780 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_782 = NIT_NULL; /* Once value for string variable[9]*/
+              static val_t once_value_783; static int once_bool_783; /* Once value for variable[8]*/
+               static val_t once_value_784 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_785 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_787 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_788; static int once_bool_788; /* Once value for variable[8]*/
+               static val_t once_value_789 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_790 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_791; static int once_bool_791; /* Once value for variable[8]*/
+               static val_t once_value_792 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_793 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_795 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_797 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_798; static int once_bool_798; /* Once value for variable[8]*/
+               static val_t once_value_799 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_800 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_802 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_803; static int once_bool_803; /* Once value for variable[8]*/
+               static val_t once_value_804 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_805 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_807 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_808; static int once_bool_808; /* Once value for variable[8]*/
+               static val_t once_value_809 = NIT_NULL; /* Once value for string variable[8]*/
+               static val_t once_value_810 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_812 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_813 = NIT_NULL; /* Once value for string variable[9]*/
+               static val_t once_value_814 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_815 = NIT_NULL; /* Once value for string variable[8]*/
+  val_t variable[13];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Local variable */
   variable[3] =  param2;
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
   variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_abstractmetamodel___MMLocalClass___name(variable[6])(variable[6]) /*MMLocalClass::name*/;
   variable[5] = variable[6];
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
   variable[7] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::name*/;
   variable[6] = variable[7];
+  /* Register variable[7]: Local variable */
   variable[7] =  NIT_NULL /*null*/;
-  if (once_bool_82) variable[8] = once_value_82;
+  /* Register variable[8]: Once expression result */
+  if (once_bool_349) variable[8] = once_value_349;
   else {
-    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
+    /* Register variable[8]: Once String constant */
+    if (once_value_350 != NIT_NULL) variable[8] = once_value_350;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)) /*new String*/;
+      once_value_350 = variable[8];
+    }
+    /* Register variable[8]: Result */
+    /* Register variable[8]: Result */
     variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-    once_value_82 = variable[8];
-    once_bool_82 = true;
+    once_value_349 = variable[8];
+    once_bool_349 = true;
   }
+  /* Register variable[8]: Result */
+  /* Register variable[8]: Result */
   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;
+    /* Register variable[8]: Once expression result */
+    if (once_bool_351) variable[8] = once_value_351;
     else {
-      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+      /* Register variable[8]: Once String constant */
+      if (once_value_352 != NIT_NULL) variable[8] = once_value_352;
+      else {
+        variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)) /*new String*/;
+        once_value_352 = variable[8];
+      }
+      /* Register variable[8]: Result */
+      /* Register variable[8]: Result */
       variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-      once_value_83 = variable[8];
-      once_bool_83 = true;
+      once_value_351 = variable[8];
+      once_bool_351 = true;
     }
+    /* Register variable[8]: Result */
+    /* Register variable[8]: Result */
     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_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
-      variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-      variable[10] = variable[9];
-      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-      variable[11] =  variable[3] /*p*/;
-      variable[12] =  TAG_Int(0);
-      variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-      variable[15] = variable[14];
-      if (UNTAG_Bool(variable[15])) { /* and */
-        variable[15] = variable[11];
-        variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-        variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+      /* Register variable[9]: Once String constant */
+      if (once_value_353 != NIT_NULL) variable[9] = once_value_353;
+      else {
+        variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+        once_value_353 = variable[9];
       }
-      variable[14] = variable[15];
-      if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[14] = variable[11];
-      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_label84;
-      return_label84: while(false);
-      variable[11] = variable[13];
-      variable[12] = variable[11];
-      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-      variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-      variable[14] = variable[13];
-      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+      /* Register variable[9]: Result */
+      /* Ensure var variable[9]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+      /* Register variable[9]: Local variable */
+      variable[9] =  variable[3] /*p*/;
+      /* Register variable[10]: Local variable */
+      variable[10] =  TAG_Int(0);
+      /* Register variable[11]: Method return value and escape marker */
+      /* Register variable[12]: Result */
+      variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+      /* Ensure var variable[12]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[12])) { /* and */
+        /* Register variable[12]: Result */
+        variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+        /* Register variable[12]: Result */
+        variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+      }
+      /* Register variable[12]: Result */
+      if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[12]: Result */
+      variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+      /* Register variable[12]: Result */
+      variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+      variable[11] = variable[12];
+      goto return_label354;
+      return_label354: while(false);
+      /* Register variable[9]: Result */
+      variable[9] = variable[11];
+      /* Ensure var variable[9]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+      /* Register variable[9]: Once String constant */
+      if (once_value_355 != NIT_NULL) variable[9] = once_value_355;
+      else {
+        variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+        once_value_355 = variable[9];
+      }
+      /* Register variable[9]: Result */
+      /* Ensure var variable[9]: super-string element*/
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+      /* Register variable[8]: Result */
       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;
+      /* Register variable[8]: Once expression result */
+      if (once_bool_356) variable[8] = once_value_356;
       else {
-        variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+        /* Register variable[8]: Once String constant */
+        if (once_value_357 != NIT_NULL) variable[8] = once_value_357;
+        else {
+          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)) /*new String*/;
+          once_value_357 = variable[8];
+        }
+        /* Register variable[8]: Result */
+        /* Register variable[8]: Result */
         variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-        once_value_85 = variable[8];
-        once_bool_85 = true;
+        once_value_356 = variable[8];
+        once_bool_356 = true;
       }
+      /* Register variable[8]: Result */
+      /* Register variable[8]: Result */
       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_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];
-        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)));
-        variable[15] = variable[14];
-        if (UNTAG_Bool(variable[15])) { /* and */
-          variable[15] = variable[11];
-          variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-          variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+        variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+        /* Register variable[9]: Once String constant */
+        if (once_value_358 != NIT_NULL) variable[9] = once_value_358;
+        else {
+          variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(-UNTAG_Int("), TAG_Int(19)) /*new String*/;
+          once_value_358 = variable[9];
         }
-        variable[14] = variable[15];
-        if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-        variable[14] = variable[11];
-        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_label86;
-        return_label86: while(false);
-        variable[11] = variable[13];
-        variable[12] = variable[11];
-        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-        variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-        variable[14] = variable[13];
-        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+        /* Register variable[9]: Result */
+        /* Ensure var variable[9]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+        /* Register variable[9]: Local variable */
+        variable[9] =  variable[3] /*p*/;
+        /* Register variable[10]: Local variable */
+        variable[10] =  TAG_Int(0);
+        /* Register variable[11]: Method return value and escape marker */
+        /* Register variable[12]: Result */
+        variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        /* Ensure var variable[12]: Left 'and' operand*/
+        if (UNTAG_Bool(variable[12])) { /* and */
+          /* Register variable[12]: Result */
+          variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+          /* Register variable[12]: Result */
+          variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+        }
+        /* Register variable[12]: Result */
+        if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+        /* Register variable[12]: Result */
+        variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+        /* Register variable[12]: Result */
+        variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+        variable[11] = variable[12];
+        goto return_label359;
+        return_label359: while(false);
+        /* Register variable[9]: Result */
+        variable[9] = variable[11];
+        /* Ensure var variable[9]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+        /* Register variable[9]: Once String constant */
+        if (once_value_360 != NIT_NULL) variable[9] = once_value_360;
+        else {
+          variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+          once_value_360 = variable[9];
+        }
+        /* Register variable[9]: Result */
+        /* Ensure var variable[9]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+        /* Register variable[8]: Result */
         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;
+        /* Register variable[8]: Once expression result */
+        if (once_bool_361) variable[8] = once_value_361;
         else {
-          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
+          /* Register variable[8]: Once String constant */
+          if (once_value_362 != NIT_NULL) variable[8] = once_value_362;
+          else {
+            variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)) /*new String*/;
+            once_value_362 = variable[8];
+          }
+          /* Register variable[8]: Result */
+          /* Register variable[8]: Result */
           variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-          once_value_87 = variable[8];
-          once_bool_87 = true;
+          once_value_361 = variable[8];
+          once_bool_361 = true;
         }
+        /* Register variable[8]: Result */
+        /* Register variable[8]: Result */
         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_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];
-          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)));
-          variable[15] = variable[14];
-          if (UNTAG_Bool(variable[15])) { /* and */
-            variable[15] = variable[11];
-            variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-            variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+          variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+          /* Register variable[9]: Once String constant */
+          if (once_value_363 != NIT_NULL) variable[9] = once_value_363;
+          else {
+            variable[9] = NEW_String_string___String___with_native(BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int("), TAG_Int(26)) /*new String*/;
+            once_value_363 = variable[9];
           }
-          variable[14] = variable[15];
-          if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-          variable[14] = variable[11];
-          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_label88;
-          return_label88: while(false);
-          variable[11] = variable[13];
-          variable[12] = variable[11];
-          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-          variable[13] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
-          variable[14] = variable[13];
-          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+          /* Register variable[9]: Result */
+          /* Ensure var variable[9]: super-string element*/
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+          /* Register variable[9]: Local variable */
+          variable[9] =  variable[3] /*p*/;
+          /* Register variable[10]: Local variable */
+          variable[10] =  TAG_Int(0);
+          /* Register variable[11]: Method return value and escape marker */
+          /* Register variable[12]: Result */
+          variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          /* Ensure var variable[12]: Left 'and' operand*/
+          if (UNTAG_Bool(variable[12])) { /* and */
+            /* Register variable[12]: Result */
+            variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+            /* Register variable[12]: Result */
+            variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+          }
+          /* Register variable[12]: Result */
+          if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+          /* Register variable[12]: Result */
+          variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+          /* Register variable[12]: Result */
+          variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+          variable[11] = variable[12];
+          goto return_label364;
+          return_label364: while(false);
+          /* Register variable[9]: Result */
+          variable[9] = variable[11];
+          /* Ensure var variable[9]: super-string element*/
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+          /* Register variable[9]: Once String constant */
+          if (once_value_365 != NIT_NULL) variable[9] = once_value_365;
+          else {
+            variable[9] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)) /*new String*/;
+            once_value_365 = variable[9];
+          }
+          /* Register variable[9]: Result */
+          /* Ensure var variable[9]: super-string element*/
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+          /* Register variable[8]: Result */
           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;
+          /* Register variable[8]: Once expression result */
+          if (once_bool_366) variable[8] = once_value_366;
           else {
-            variable[8] = NEW_String_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)); /*new String*/
+            /* Register variable[8]: Once String constant */
+            if (once_value_367 != NIT_NULL) variable[8] = once_value_367;
+            else {
+              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)) /*new String*/;
+              once_value_367 = variable[8];
+            }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-            once_value_89 = variable[8];
-            once_bool_89 = true;
+            once_value_366 = variable[8];
+            once_bool_366 = true;
           }
+          /* Register variable[8]: Result */
+          /* Register variable[8]: Result */
           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_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];
-            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)));
-            variable[15] = variable[14];
-            if (UNTAG_Bool(variable[15])) { /* and */
-              variable[15] = variable[11];
-              variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-              variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+            variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+            /* Register variable[9]: Once String constant */
+            if (once_value_368 != NIT_NULL) variable[9] = once_value_368;
+            else {
+              variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Int("), TAG_Int(19)) /*new String*/;
+              once_value_368 = variable[9];
+            }
+            /* Register variable[9]: Result */
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[9]: Local variable */
+            variable[9] =  variable[3] /*p*/;
+            /* Register variable[10]: Local variable */
+            variable[10] =  TAG_Int(0);
+            /* Register variable[11]: Method return value and escape marker */
+            /* Register variable[12]: Result */
+            variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            /* Ensure var variable[12]: Left 'and' operand*/
+            if (UNTAG_Bool(variable[12])) { /* and */
+              /* Register variable[12]: Result */
+              variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+              /* Register variable[12]: Result */
+              variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+            }
+            /* Register variable[12]: Result */
+            if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+            /* Register variable[12]: Result */
+            variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+            /* Register variable[12]: Result */
+            variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+            variable[11] = variable[12];
+            goto return_label369;
+            return_label369: while(false);
+            /* Register variable[9]: Result */
+            variable[9] = variable[11];
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[9]: Once String constant */
+            if (once_value_370 != NIT_NULL) variable[9] = once_value_370;
+            else {
+              variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+              once_value_370 = variable[9];
             }
-            variable[14] = variable[15];
-            if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-            variable[14] = variable[11];
-            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_label90;
-            return_label90: while(false);
-            variable[11] = variable[13];
-            variable[12] = variable[11];
-            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-            variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-            variable[14] = variable[13];
-            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+            /* Register variable[9]: Result */
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[8]: Result */
             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;
+            /* Register variable[8]: Once expression result */
+            if (once_bool_371) variable[8] = once_value_371;
             else {
-              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("succ"), TAG_Int(4)); /*new String*/
+              /* Register variable[8]: Once String constant */
+              if (once_value_372 != NIT_NULL) variable[8] = once_value_372;
+              else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("succ"), TAG_Int(4)) /*new String*/;
+               once_value_372 = variable[8];
+              }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-              once_value_91 = variable[8];
-              once_bool_91 = true;
+              once_value_371 = variable[8];
+              once_bool_371 = true;
             }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             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_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];
-              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)));
-              variable[15] = variable[14];
-              if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_373 != NIT_NULL) variable[9] = once_value_373;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)) /*new String*/;
+               once_value_373 = variable[9];
               }
-              variable[14] = variable[15];
-              if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-              variable[14] = variable[11];
-              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_label92;
-              return_label92: while(false);
-              variable[11] = variable[13];
-              variable[12] = variable[11];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-              variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+1)"), TAG_Int(4)); /*new String*/
-              variable[14] = variable[13];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Local variable */
+              variable[9] =  variable[3] /*p*/;
+              /* Register variable[10]: Local variable */
+              variable[10] =  TAG_Int(0);
+              /* Register variable[11]: Method return value and escape marker */
+              /* Register variable[12]: Result */
+              variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              /* Ensure var variable[12]: Left 'and' operand*/
+              if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+              }
+              /* Register variable[12]: Result */
+              if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+              /* Register variable[12]: Result */
+              variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+              /* Register variable[12]: Result */
+              variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+              variable[11] = variable[12];
+              goto return_label374;
+              return_label374: while(false);
+              /* Register variable[9]: Result */
+              variable[9] = variable[11];
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_375 != NIT_NULL) variable[9] = once_value_375;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")+1)"), TAG_Int(4)) /*new String*/;
+               once_value_375 = variable[9];
+              }
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[8]: Result */
               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;
+              /* Register variable[8]: Once expression result */
+              if (once_bool_376) variable[8] = once_value_376;
               else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("prec"), TAG_Int(4)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_377 != NIT_NULL) variable[8] = once_value_377;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("prec"), TAG_Int(4)) /*new String*/;
+               once_value_377 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_93 = variable[8];
-               once_bool_93 = true;
+               once_value_376 = variable[8];
+               once_bool_376 = true;
               }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label94;
-               return_label94: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-1)"), TAG_Int(4)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_378 != NIT_NULL) variable[9] = once_value_378;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)) /*new String*/;
+               once_value_378 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label379;
+               return_label379: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_380 != NIT_NULL) variable[9] = once_value_380;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")-1)"), TAG_Int(4)) /*new String*/;
+               once_value_380 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_381) variable[8] = once_value_381;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_f"), TAG_Int(4)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_382 != NIT_NULL) variable[8] = once_value_382;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_f"), TAG_Int(4)) /*new String*/;
+               once_value_382 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_95 = variable[8];
-               once_bool_95 = true;
+               once_value_381 = variable[8];
+               once_bool_381 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label96;
-               return_label96: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_383 != NIT_NULL) variable[9] = once_value_383;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float((float)UNTAG_Int("), TAG_Int(27)) /*new String*/;
+               once_value_383 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label384;
+               return_label384: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_385 != NIT_NULL) variable[9] = once_value_385;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_385 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_386) variable[8] = once_value_386;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_387 != NIT_NULL) variable[8] = once_value_387;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)) /*new String*/;
+               once_value_387 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_97 = variable[8];
-               once_bool_97 = true;
+               once_value_386 = variable[8];
+               once_bool_386 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label98;
-               return_label98: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label99;
-               return_label99: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_388 != NIT_NULL) variable[9] = once_value_388;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)) /*new String*/;
+               once_value_388 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label389;
+               return_label389: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_390 != NIT_NULL) variable[9] = once_value_390;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_390 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label391;
+               return_label391: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_392 != NIT_NULL) variable[9] = once_value_392;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_392 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_393) variable[8] = once_value_393;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_394 != NIT_NULL) variable[8] = once_value_394;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)) /*new String*/;
+               once_value_394 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_100 = variable[8];
-               once_bool_100 = true;
+               once_value_393 = variable[8];
+               once_bool_393 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label101;
-               return_label101: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label102;
-               return_label102: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_395 != NIT_NULL) variable[9] = once_value_395;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)) /*new String*/;
+               once_value_395 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label396;
+               return_label396: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_397 != NIT_NULL) variable[9] = once_value_397;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")-UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_397 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label398;
+               return_label398: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_399 != NIT_NULL) variable[9] = once_value_399;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_399 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_400) variable[8] = once_value_400;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_401 != NIT_NULL) variable[8] = once_value_401;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)) /*new String*/;
+               once_value_401 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_103 = variable[8];
-               once_bool_103 = true;
+               once_value_400 = variable[8];
+               once_bool_400 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label104;
-               return_label104: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")*UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label105;
-               return_label105: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_402 != NIT_NULL) variable[9] = once_value_402;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)) /*new String*/;
+               once_value_402 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label403;
+               return_label403: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_404 != NIT_NULL) variable[9] = once_value_404;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")*UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_404 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label405;
+               return_label405: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_406 != NIT_NULL) variable[9] = once_value_406;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_406 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_407) variable[8] = once_value_407;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_408 != NIT_NULL) variable[8] = once_value_408;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
+               once_value_408 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_106 = variable[8];
-               once_bool_106 = true;
+               once_value_407 = variable[8];
+               once_bool_407 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label107;
-               return_label107: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")/UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label108;
-               return_label108: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_409 != NIT_NULL) variable[9] = once_value_409;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)) /*new String*/;
+               once_value_409 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label410;
+               return_label410: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_411 != NIT_NULL) variable[9] = once_value_411;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")/UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_411 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label412;
+               return_label412: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_413 != NIT_NULL) variable[9] = once_value_413;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_413 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_414) variable[8] = once_value_414;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_415 != NIT_NULL) variable[8] = once_value_415;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)) /*new String*/;
+               once_value_415 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_109 = variable[8];
-               once_bool_109 = true;
+               once_value_414 = variable[8];
+               once_bool_414 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label110;
-               return_label110: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")%UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label111;
-               return_label111: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_416 != NIT_NULL) variable[9] = once_value_416;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)) /*new String*/;
+               once_value_416 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label417;
+               return_label417: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_418 != NIT_NULL) variable[9] = once_value_418;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")%UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_418 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label419;
+               return_label419: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_420 != NIT_NULL) variable[9] = once_value_420;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_420 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_421) variable[8] = once_value_421;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_422 != NIT_NULL) variable[8] = once_value_422;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)) /*new String*/;
+               once_value_422 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_112 = variable[8];
-               once_bool_112 = true;
+               once_value_421 = variable[8];
+               once_bool_421 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label113;
-               return_label113: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label114;
-               return_label114: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_423 != NIT_NULL) variable[9] = once_value_423;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)) /*new String*/;
+               once_value_423 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label424;
+               return_label424: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_425 != NIT_NULL) variable[9] = once_value_425;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")<UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_425 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label426;
+               return_label426: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_427 != NIT_NULL) variable[9] = once_value_427;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_427 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_428) variable[8] = once_value_428;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_429 != NIT_NULL) variable[8] = once_value_429;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)) /*new String*/;
+               once_value_429 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_115 = variable[8];
-               once_bool_115 = true;
+               once_value_428 = variable[8];
+               once_bool_428 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label116;
-               return_label116: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label117;
-               return_label117: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_430 != NIT_NULL) variable[9] = once_value_430;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)) /*new String*/;
+               once_value_430 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label431;
+               return_label431: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_432 != NIT_NULL) variable[9] = once_value_432;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")>UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_432 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label433;
+               return_label433: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_434 != NIT_NULL) variable[9] = once_value_434;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_434 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_435) variable[8] = once_value_435;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_436 != NIT_NULL) variable[8] = once_value_436;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)) /*new String*/;
+               once_value_436 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_118 = variable[8];
-               once_bool_118 = true;
+               once_value_435 = variable[8];
+               once_bool_435 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label119;
-               return_label119: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<=UNTAG_Int("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label120;
-               return_label120: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_437 != NIT_NULL) variable[9] = once_value_437;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)) /*new String*/;
+               once_value_437 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label438;
+               return_label438: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_439 != NIT_NULL) variable[9] = once_value_439;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")<=UNTAG_Int("), TAG_Int(13)) /*new String*/;
+               once_value_439 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label440;
+               return_label440: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_441 != NIT_NULL) variable[9] = once_value_441;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_441 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_442) variable[8] = once_value_442;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_443 != NIT_NULL) variable[8] = once_value_443;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)) /*new String*/;
+               once_value_443 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_121 = variable[8];
-               once_bool_121 = true;
+               once_value_442 = variable[8];
+               once_bool_442 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label122;
-               return_label122: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>=UNTAG_Int("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label123;
-               return_label123: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_444 != NIT_NULL) variable[9] = once_value_444;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)) /*new String*/;
+               once_value_444 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label445;
+               return_label445: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_446 != NIT_NULL) variable[9] = once_value_446;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")>=UNTAG_Int("), TAG_Int(13)) /*new String*/;
+               once_value_446 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label447;
+               return_label447: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_448 != NIT_NULL) variable[9] = once_value_448;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_448 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_449) variable[8] = once_value_449;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_450 != NIT_NULL) variable[8] = once_value_450;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("lshift"), TAG_Int(6)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("lshift"), TAG_Int(6)) /*new String*/;
+               once_value_450 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_124 = variable[8];
-               once_bool_124 = true;
+               once_value_449 = variable[8];
+               once_bool_449 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label125;
-               return_label125: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<<UNTAG_Int("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label126;
-               return_label126: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_451 != NIT_NULL) variable[9] = once_value_451;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)) /*new String*/;
+               once_value_451 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label452;
+               return_label452: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_453 != NIT_NULL) variable[9] = once_value_453;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")<<UNTAG_Int("), TAG_Int(13)) /*new String*/;
+               once_value_453 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label454;
+               return_label454: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_455 != NIT_NULL) variable[9] = once_value_455;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_455 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_456) variable[8] = once_value_456;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_457 != NIT_NULL) variable[8] = once_value_457;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("rshift"), TAG_Int(6)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("rshift"), TAG_Int(6)) /*new String*/;
+               once_value_457 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_127 = variable[8];
-               once_bool_127 = true;
+               once_value_456 = variable[8];
+               once_bool_456 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label128;
-               return_label128: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>>UNTAG_Int("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label129;
-               return_label129: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_458 != NIT_NULL) variable[9] = once_value_458;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)) /*new String*/;
+               once_value_458 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label459;
+               return_label459: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_460 != NIT_NULL) variable[9] = once_value_460;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")>>UNTAG_Int("), TAG_Int(13)) /*new String*/;
+               once_value_460 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label461;
+               return_label461: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_462 != NIT_NULL) variable[9] = once_value_462;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_462 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_463) variable[8] = once_value_463;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_464 != NIT_NULL) variable[8] = once_value_464;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)) /*new String*/;
+               once_value_464 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_130 = variable[8];
-               once_bool_130 = true;
+               once_value_463 = variable[8];
+               once_bool_463 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label131;
-               return_label131: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label132;
-               return_label132: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_465 != NIT_NULL) variable[9] = once_value_465;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)) /*new String*/;
+               once_value_465 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label466;
+               return_label466: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_467 != NIT_NULL) variable[9] = once_value_467;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)) /*new String*/;
+               once_value_467 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label468;
+               return_label468: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_469 != NIT_NULL) variable[9] = once_value_469;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_469 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_470) variable[8] = once_value_470;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_471 != NIT_NULL) variable[8] = once_value_471;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)) /*new String*/;
+               once_value_471 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_133 = variable[8];
-               once_bool_133 = true;
+               once_value_470 = variable[8];
+               once_bool_470 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label134;
-               return_label134: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label135;
-               return_label135: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_472 != NIT_NULL) variable[9] = once_value_472;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)) /*new String*/;
+               once_value_472 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label473;
+               return_label473: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_474 != NIT_NULL) variable[9] = once_value_474;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)) /*new String*/;
+               once_value_474 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label475;
+               return_label475: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_476 != NIT_NULL) variable[9] = once_value_476;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_476 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                }
@@ -4246,664 +8652,1138 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
       }
     }
   } else { /*if*/
-    if (once_bool_136) variable[8] = once_value_136;
+    /* Register variable[8]: Once expression result */
+    if (once_bool_477) variable[8] = once_value_477;
     else {
-      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
+      /* Register variable[8]: Once String constant */
+      if (once_value_478 != NIT_NULL) variable[8] = once_value_478;
+      else {
+        variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)) /*new String*/;
+        once_value_478 = variable[8];
+      }
+      /* Register variable[8]: Result */
+      /* Register variable[8]: Result */
       variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-      once_value_136 = variable[8];
-      once_bool_136 = true;
+      once_value_477 = variable[8];
+      once_bool_477 = true;
     }
+    /* Register variable[8]: Result */
+    /* Register variable[8]: Result */
     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;
+      /* Register variable[8]: Once expression result */
+      if (once_bool_479) variable[8] = once_value_479;
       else {
-        variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+        /* Register variable[8]: Once String constant */
+        if (once_value_480 != NIT_NULL) variable[8] = once_value_480;
+        else {
+          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)) /*new String*/;
+          once_value_480 = variable[8];
+        }
+        /* Register variable[8]: Result */
+        /* Register variable[8]: Result */
         variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-        once_value_137 = variable[8];
-        once_bool_137 = true;
+        once_value_479 = variable[8];
+        once_bool_479 = true;
       }
+      /* Register variable[8]: Result */
+      /* Register variable[8]: Result */
       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_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];
-        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)));
-        variable[15] = variable[14];
-        if (UNTAG_Bool(variable[15])) { /* and */
-          variable[15] = variable[11];
-          variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-          variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+        variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+        /* Register variable[9]: Once String constant */
+        if (once_value_481 != NIT_NULL) variable[9] = once_value_481;
+        else {
+          variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int((bigint)UNBOX_Float("), TAG_Int(28)) /*new String*/;
+          once_value_481 = variable[9];
         }
-        variable[14] = variable[15];
-        if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-        variable[14] = variable[11];
-        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_label138;
-        return_label138: while(false);
-        variable[11] = variable[13];
-        variable[12] = variable[11];
-        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-        variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-        variable[14] = variable[13];
-        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+        /* Register variable[9]: Result */
+        /* Ensure var variable[9]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+        /* Register variable[9]: Local variable */
+        variable[9] =  variable[3] /*p*/;
+        /* Register variable[10]: Local variable */
+        variable[10] =  TAG_Int(0);
+        /* Register variable[11]: Method return value and escape marker */
+        /* Register variable[12]: Result */
+        variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+        /* Ensure var variable[12]: Left 'and' operand*/
+        if (UNTAG_Bool(variable[12])) { /* and */
+          /* Register variable[12]: Result */
+          variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+          /* Register variable[12]: Result */
+          variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+        }
+        /* Register variable[12]: Result */
+        if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+        /* Register variable[12]: Result */
+        variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+        /* Register variable[12]: Result */
+        variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+        variable[11] = variable[12];
+        goto return_label482;
+        return_label482: while(false);
+        /* Register variable[9]: Result */
+        variable[9] = variable[11];
+        /* Ensure var variable[9]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+        /* Register variable[9]: Once String constant */
+        if (once_value_483 != NIT_NULL) variable[9] = once_value_483;
+        else {
+          variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+          once_value_483 = variable[9];
+        }
+        /* Register variable[9]: Result */
+        /* Ensure var variable[9]: super-string element*/
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+        /* Register variable[8]: Result */
         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;
+        /* Register variable[8]: Once expression result */
+        if (once_bool_484) variable[8] = once_value_484;
         else {
-          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+          /* Register variable[8]: Once String constant */
+          if (once_value_485 != NIT_NULL) variable[8] = once_value_485;
+          else {
+            variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)) /*new String*/;
+            once_value_485 = variable[8];
+          }
+          /* Register variable[8]: Result */
+          /* Register variable[8]: Result */
           variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-          once_value_139 = variable[8];
-          once_bool_139 = true;
+          once_value_484 = variable[8];
+          once_bool_484 = true;
         }
+        /* Register variable[8]: Result */
+        /* Register variable[8]: Result */
         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_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];
-          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)));
-          variable[15] = variable[14];
-          if (UNTAG_Bool(variable[15])) { /* and */
-            variable[15] = variable[11];
-            variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-            variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+          variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+          /* Register variable[9]: Once String constant */
+          if (once_value_486 != NIT_NULL) variable[9] = once_value_486;
+          else {
+            variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(-UNBOX_Float("), TAG_Int(23)) /*new String*/;
+            once_value_486 = variable[9];
+          }
+          /* Register variable[9]: Result */
+          /* Ensure var variable[9]: super-string element*/
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+          /* Register variable[9]: Local variable */
+          variable[9] =  variable[3] /*p*/;
+          /* Register variable[10]: Local variable */
+          variable[10] =  TAG_Int(0);
+          /* Register variable[11]: Method return value and escape marker */
+          /* Register variable[12]: Result */
+          variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          /* Ensure var variable[12]: Left 'and' operand*/
+          if (UNTAG_Bool(variable[12])) { /* and */
+            /* Register variable[12]: Result */
+            variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+            /* Register variable[12]: Result */
+            variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
           }
-          variable[14] = variable[15];
-          if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-          variable[14] = variable[11];
-          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_label140;
-          return_label140: while(false);
-          variable[11] = variable[13];
-          variable[12] = variable[11];
-          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-          variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-          variable[14] = variable[13];
-          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+          /* Register variable[12]: Result */
+          if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+          /* Register variable[12]: Result */
+          variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+          /* Register variable[12]: Result */
+          variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+          variable[11] = variable[12];
+          goto return_label487;
+          return_label487: while(false);
+          /* Register variable[9]: Result */
+          variable[9] = variable[11];
+          /* Ensure var variable[9]: super-string element*/
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+          /* Register variable[9]: Once String constant */
+          if (once_value_488 != NIT_NULL) variable[9] = once_value_488;
+          else {
+            variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+            once_value_488 = variable[9];
+          }
+          /* Register variable[9]: Result */
+          /* Ensure var variable[9]: super-string element*/
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+          /* Register variable[8]: Result */
           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;
+          /* Register variable[8]: Once expression result */
+          if (once_bool_489) variable[8] = once_value_489;
           else {
-            variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
+            /* Register variable[8]: Once String constant */
+            if (once_value_490 != NIT_NULL) variable[8] = once_value_490;
+            else {
+              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)) /*new String*/;
+              once_value_490 = variable[8];
+            }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-            once_value_141 = variable[8];
-            once_bool_141 = true;
+            once_value_489 = variable[8];
+            once_bool_489 = true;
           }
+          /* Register variable[8]: Result */
+          /* Register variable[8]: Result */
           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_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];
-            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)));
-            variable[15] = variable[14];
-            if (UNTAG_Bool(variable[15])) { /* and */
-              variable[15] = variable[11];
-              variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-              variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+            variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+            /* Register variable[9]: Once String constant */
+            if (once_value_491 != NIT_NULL) variable[9] = once_value_491;
+            else {
+              variable[9] = NEW_String_string___String___with_native(BOX_NativeString("printf(\"%f\\n\", UNBOX_Float("), TAG_Int(27)) /*new String*/;
+              once_value_491 = variable[9];
+            }
+            /* Register variable[9]: Result */
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[9]: Local variable */
+            variable[9] =  variable[3] /*p*/;
+            /* Register variable[10]: Local variable */
+            variable[10] =  TAG_Int(0);
+            /* Register variable[11]: Method return value and escape marker */
+            /* Register variable[12]: Result */
+            variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            /* Ensure var variable[12]: Left 'and' operand*/
+            if (UNTAG_Bool(variable[12])) { /* and */
+              /* Register variable[12]: Result */
+              variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+              /* Register variable[12]: Result */
+              variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+            }
+            /* Register variable[12]: Result */
+            if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+            /* Register variable[12]: Result */
+            variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+            /* Register variable[12]: Result */
+            variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+            variable[11] = variable[12];
+            goto return_label492;
+            return_label492: while(false);
+            /* Register variable[9]: Result */
+            variable[9] = variable[11];
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[9]: Once String constant */
+            if (once_value_493 != NIT_NULL) variable[9] = once_value_493;
+            else {
+              variable[9] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)) /*new String*/;
+              once_value_493 = variable[9];
             }
-            variable[14] = variable[15];
-            if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-            variable[14] = variable[11];
-            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_label142;
-            return_label142: while(false);
-            variable[11] = variable[13];
-            variable[12] = variable[11];
-            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-            variable[13] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
-            variable[14] = variable[13];
-            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+            /* Register variable[9]: Result */
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[8]: Result */
             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;
+            /* Register variable[8]: Once expression result */
+            if (once_bool_494) variable[8] = once_value_494;
             else {
-              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)); /*new String*/
+              /* Register variable[8]: Once String constant */
+              if (once_value_495 != NIT_NULL) variable[8] = once_value_495;
+              else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)) /*new String*/;
+               once_value_495 = variable[8];
+              }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-              once_value_143 = variable[8];
-              once_bool_143 = true;
+              once_value_494 = variable[8];
+              once_bool_494 = true;
             }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             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_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];
-              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)));
-              variable[15] = variable[14];
-              if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_496 != NIT_NULL) variable[9] = once_value_496;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int((bigint)UNBOX_Float("), TAG_Int(28)) /*new String*/;
+               once_value_496 = variable[9];
+              }
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Local variable */
+              variable[9] =  variable[3] /*p*/;
+              /* Register variable[10]: Local variable */
+              variable[10] =  TAG_Int(0);
+              /* Register variable[11]: Method return value and escape marker */
+              /* Register variable[12]: Result */
+              variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              /* Ensure var variable[12]: Left 'and' operand*/
+              if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
               }
-              variable[14] = variable[15];
-              if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-              variable[14] = variable[11];
-              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_label144;
-              return_label144: while(false);
-              variable[11] = variable[13];
-              variable[12] = variable[11];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-              variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-              variable[14] = variable[13];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              /* Register variable[12]: Result */
+              if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+              /* Register variable[12]: Result */
+              variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+              /* Register variable[12]: Result */
+              variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+              variable[11] = variable[12];
+              goto return_label497;
+              return_label497: while(false);
+              /* Register variable[9]: Result */
+              variable[9] = variable[11];
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_498 != NIT_NULL) variable[9] = once_value_498;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_498 = variable[9];
+              }
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[8]: Result */
               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;
+              /* Register variable[8]: Once expression result */
+              if (once_bool_499) variable[8] = once_value_499;
               else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_500 != NIT_NULL) variable[8] = once_value_500;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)) /*new String*/;
+               once_value_500 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_145 = variable[8];
-               once_bool_145 = true;
+               once_value_499 = variable[8];
+               once_bool_499 = true;
               }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label146;
-               return_label146: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+UNBOX_Float("), TAG_Int(14)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label147;
-               return_label147: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_501 != NIT_NULL) variable[9] = once_value_501;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)) /*new String*/;
+               once_value_501 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label502;
+               return_label502: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_503 != NIT_NULL) variable[9] = once_value_503;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")+UNBOX_Float("), TAG_Int(14)) /*new String*/;
+               once_value_503 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label504;
+               return_label504: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_505 != NIT_NULL) variable[9] = once_value_505;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_505 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_506) variable[8] = once_value_506;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_507 != NIT_NULL) variable[8] = once_value_507;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)) /*new String*/;
+               once_value_507 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
+               once_value_506 = variable[8];
+               once_bool_506 = true;
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
+               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_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_508 != NIT_NULL) variable[9] = once_value_508;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)) /*new String*/;
+               once_value_508 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label509;
+               return_label509: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_510 != NIT_NULL) variable[9] = once_value_510;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")-UNBOX_Float("), TAG_Int(14)) /*new String*/;
+               once_value_510 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label511;
+               return_label511: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_512 != NIT_NULL) variable[9] = once_value_512;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
-               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_148 = variable[8];
-               once_bool_148 = true;
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_512 = variable[9];
                }
-               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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label149;
-               return_label149: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-UNBOX_Float("), TAG_Int(14)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label150;
-               return_label150: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_513) variable[8] = once_value_513;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_514 != NIT_NULL) variable[8] = once_value_514;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)) /*new String*/;
+               once_value_514 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_151 = variable[8];
-               once_bool_151 = true;
+               once_value_513 = variable[8];
+               once_bool_513 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label152;
-               return_label152: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")*UNBOX_Float("), TAG_Int(14)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label153;
-               return_label153: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_515 != NIT_NULL) variable[9] = once_value_515;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)) /*new String*/;
+               once_value_515 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label516;
+               return_label516: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_517 != NIT_NULL) variable[9] = once_value_517;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")*UNBOX_Float("), TAG_Int(14)) /*new String*/;
+               once_value_517 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label518;
+               return_label518: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_519 != NIT_NULL) variable[9] = once_value_519;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_519 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_520) variable[8] = once_value_520;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_521 != NIT_NULL) variable[8] = once_value_521;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
+               once_value_521 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_154 = variable[8];
-               once_bool_154 = true;
+               once_value_520 = variable[8];
+               once_bool_520 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label155;
-               return_label155: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")/UNBOX_Float("), TAG_Int(14)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label156;
-               return_label156: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_522 != NIT_NULL) variable[9] = once_value_522;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)) /*new String*/;
+               once_value_522 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label523;
+               return_label523: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_524 != NIT_NULL) variable[9] = once_value_524;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")/UNBOX_Float("), TAG_Int(14)) /*new String*/;
+               once_value_524 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label525;
+               return_label525: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_526 != NIT_NULL) variable[9] = once_value_526;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_526 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_527) variable[8] = once_value_527;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_528 != NIT_NULL) variable[8] = once_value_528;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)) /*new String*/;
+               once_value_528 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_157 = variable[8];
-               once_bool_157 = true;
+               once_value_527 = variable[8];
+               once_bool_527 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label158;
-               return_label158: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<UNBOX_Float("), TAG_Int(14)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label159;
-               return_label159: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_529 != NIT_NULL) variable[9] = once_value_529;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)) /*new String*/;
+               once_value_529 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label530;
+               return_label530: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_531 != NIT_NULL) variable[9] = once_value_531;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")<UNBOX_Float("), TAG_Int(14)) /*new String*/;
+               once_value_531 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label532;
+               return_label532: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_533 != NIT_NULL) variable[9] = once_value_533;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_533 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_534) variable[8] = once_value_534;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_535 != NIT_NULL) variable[8] = once_value_535;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)) /*new String*/;
+               once_value_535 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_160 = variable[8];
-               once_bool_160 = true;
+               once_value_534 = variable[8];
+               once_bool_534 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label161;
-               return_label161: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>UNBOX_Float("), TAG_Int(14)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label162;
-               return_label162: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_536 != NIT_NULL) variable[9] = once_value_536;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)) /*new String*/;
+               once_value_536 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label537;
+               return_label537: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_538 != NIT_NULL) variable[9] = once_value_538;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")>UNBOX_Float("), TAG_Int(14)) /*new String*/;
+               once_value_538 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label539;
+               return_label539: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_540 != NIT_NULL) variable[9] = once_value_540;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_540 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_541) variable[8] = once_value_541;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_542 != NIT_NULL) variable[8] = once_value_542;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)) /*new String*/;
+               once_value_542 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_163 = variable[8];
-               once_bool_163 = true;
+               once_value_541 = variable[8];
+               once_bool_541 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label164;
-               return_label164: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<=UNBOX_Float("), TAG_Int(15)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label165;
-               return_label165: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_543 != NIT_NULL) variable[9] = once_value_543;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)) /*new String*/;
+               once_value_543 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label544;
+               return_label544: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_545 != NIT_NULL) variable[9] = once_value_545;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")<=UNBOX_Float("), TAG_Int(15)) /*new String*/;
+               once_value_545 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label546;
+               return_label546: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_547 != NIT_NULL) variable[9] = once_value_547;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_547 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_548) variable[8] = once_value_548;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_549 != NIT_NULL) variable[8] = once_value_549;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)) /*new String*/;
+               once_value_549 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_166 = variable[8];
-               once_bool_166 = true;
+               once_value_548 = variable[8];
+               once_bool_548 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label167;
-               return_label167: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>=UNBOX_Float("), TAG_Int(15)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label168;
-               return_label168: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_550 != NIT_NULL) variable[9] = once_value_550;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)) /*new String*/;
+               once_value_550 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label551;
+               return_label551: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_552 != NIT_NULL) variable[9] = once_value_552;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")>=UNBOX_Float("), TAG_Int(15)) /*new String*/;
+               once_value_552 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label553;
+               return_label553: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_554 != NIT_NULL) variable[9] = once_value_554;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_554 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                }
@@ -4919,967 +9799,1660 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
         }
       }
     } else { /*if*/
-      if (once_bool_169) variable[8] = once_value_169;
+      /* Register variable[8]: Once expression result */
+      if (once_bool_555) variable[8] = once_value_555;
       else {
-        variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
+        /* Register variable[8]: Once String constant */
+        if (once_value_556 != NIT_NULL) variable[8] = once_value_556;
+        else {
+          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)) /*new String*/;
+          once_value_556 = variable[8];
+        }
+        /* Register variable[8]: Result */
+        /* Register variable[8]: Result */
         variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-        once_value_169 = variable[8];
-        once_bool_169 = true;
+        once_value_555 = variable[8];
+        once_bool_555 = true;
       }
+      /* Register variable[8]: Result */
+      /* Register variable[8]: Result */
       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;
+        /* Register variable[8]: Once expression result */
+        if (once_bool_557) variable[8] = once_value_557;
         else {
-          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+          /* Register variable[8]: Once String constant */
+          if (once_value_558 != NIT_NULL) variable[8] = once_value_558;
+          else {
+            variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)) /*new String*/;
+            once_value_558 = variable[8];
+          }
+          /* Register variable[8]: Result */
+          /* Register variable[8]: Result */
           variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-          once_value_170 = variable[8];
-          once_bool_170 = true;
+          once_value_557 = variable[8];
+          once_bool_557 = true;
         }
+        /* Register variable[8]: Result */
+        /* Register variable[8]: Result */
         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_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];
-          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)));
-          variable[15] = variable[14];
-          if (UNTAG_Bool(variable[15])) { /* and */
-            variable[15] = variable[11];
-            variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-            variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+          variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+          /* Register variable[9]: Once String constant */
+          if (once_value_559 != NIT_NULL) variable[9] = once_value_559;
+          else {
+            variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Char("), TAG_Int(19)) /*new String*/;
+            once_value_559 = variable[9];
+          }
+          /* Register variable[9]: Result */
+          /* Ensure var variable[9]: super-string element*/
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+          /* Register variable[9]: Local variable */
+          variable[9] =  variable[3] /*p*/;
+          /* Register variable[10]: Local variable */
+          variable[10] =  TAG_Int(0);
+          /* Register variable[11]: Method return value and escape marker */
+          /* Register variable[12]: Result */
+          variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+          /* Ensure var variable[12]: Left 'and' operand*/
+          if (UNTAG_Bool(variable[12])) { /* and */
+            /* Register variable[12]: Result */
+            variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+            /* Register variable[12]: Result */
+            variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+          }
+          /* Register variable[12]: Result */
+          if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+          /* Register variable[12]: Result */
+          variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+          /* Register variable[12]: Result */
+          variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+          variable[11] = variable[12];
+          goto return_label560;
+          return_label560: while(false);
+          /* Register variable[9]: Result */
+          variable[9] = variable[11];
+          /* Ensure var variable[9]: super-string element*/
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+          /* Register variable[9]: Once String constant */
+          if (once_value_561 != NIT_NULL) variable[9] = once_value_561;
+          else {
+            variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+            once_value_561 = variable[9];
           }
-          variable[14] = variable[15];
-          if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-          variable[14] = variable[11];
-          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_label171;
-          return_label171: while(false);
-          variable[11] = variable[13];
-          variable[12] = variable[11];
-          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-          variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-          variable[14] = variable[13];
-          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+          /* Register variable[9]: Result */
+          /* Ensure var variable[9]: super-string element*/
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+          /* Register variable[8]: Result */
           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;
+          /* Register variable[8]: Once expression result */
+          if (once_bool_562) variable[8] = once_value_562;
           else {
-            variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+            /* Register variable[8]: Once String constant */
+            if (once_value_563 != NIT_NULL) variable[8] = once_value_563;
+            else {
+              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)) /*new String*/;
+              once_value_563 = variable[8];
+            }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-            once_value_172 = variable[8];
-            once_bool_172 = true;
+            once_value_562 = variable[8];
+            once_bool_562 = true;
           }
+          /* Register variable[8]: Result */
+          /* Register variable[8]: Result */
           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_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];
-            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)));
-            variable[15] = variable[14];
-            if (UNTAG_Bool(variable[15])) { /* and */
-              variable[15] = variable[11];
-              variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-              variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+            variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+            /* Register variable[9]: Once String constant */
+            if (once_value_564 != NIT_NULL) variable[9] = once_value_564;
+            else {
+              variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(-UNTAG_Char("), TAG_Int(21)) /*new String*/;
+              once_value_564 = variable[9];
+            }
+            /* Register variable[9]: Result */
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[9]: Local variable */
+            variable[9] =  variable[3] /*p*/;
+            /* Register variable[10]: Local variable */
+            variable[10] =  TAG_Int(0);
+            /* Register variable[11]: Method return value and escape marker */
+            /* Register variable[12]: Result */
+            variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            /* Ensure var variable[12]: Left 'and' operand*/
+            if (UNTAG_Bool(variable[12])) { /* and */
+              /* Register variable[12]: Result */
+              variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+              /* Register variable[12]: Result */
+              variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
             }
-            variable[14] = variable[15];
-            if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-            variable[14] = variable[11];
-            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_label173;
-            return_label173: while(false);
-            variable[11] = variable[13];
-            variable[12] = variable[11];
-            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-            variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-            variable[14] = variable[13];
-            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+            /* Register variable[12]: Result */
+            if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+            /* Register variable[12]: Result */
+            variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+            /* Register variable[12]: Result */
+            variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+            variable[11] = variable[12];
+            goto return_label565;
+            return_label565: while(false);
+            /* Register variable[9]: Result */
+            variable[9] = variable[11];
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[9]: Once String constant */
+            if (once_value_566 != NIT_NULL) variable[9] = once_value_566;
+            else {
+              variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+              once_value_566 = variable[9];
+            }
+            /* Register variable[9]: Result */
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[8]: Result */
             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;
+            /* Register variable[8]: Once expression result */
+            if (once_bool_567) variable[8] = once_value_567;
             else {
-              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
+              /* Register variable[8]: Once String constant */
+              if (once_value_568 != NIT_NULL) variable[8] = once_value_568;
+              else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)) /*new String*/;
+               once_value_568 = variable[8];
+              }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-              once_value_174 = variable[8];
-              once_bool_174 = true;
+              once_value_567 = variable[8];
+              once_bool_567 = true;
             }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             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_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];
-              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)));
-              variable[15] = variable[14];
-              if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_569 != NIT_NULL) variable[9] = once_value_569;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char("), TAG_Int(39)) /*new String*/;
+               once_value_569 = variable[9];
+              }
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Local variable */
+              variable[9] =  variable[3] /*p*/;
+              /* Register variable[10]: Local variable */
+              variable[10] =  TAG_Int(0);
+              /* Register variable[11]: Method return value and escape marker */
+              /* Register variable[12]: Result */
+              variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              /* Ensure var variable[12]: Left 'and' operand*/
+              if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+              }
+              /* Register variable[12]: Result */
+              if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+              /* Register variable[12]: Result */
+              variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+              /* Register variable[12]: Result */
+              variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+              variable[11] = variable[12];
+              goto return_label570;
+              return_label570: while(false);
+              /* Register variable[9]: Result */
+              variable[9] = variable[11];
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_571 != NIT_NULL) variable[9] = once_value_571;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)) /*new String*/;
+               once_value_571 = variable[9];
               }
-              variable[14] = variable[15];
-              if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-              variable[14] = variable[11];
-              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_label175;
-              return_label175: while(false);
-              variable[11] = variable[13];
-              variable[12] = variable[11];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-              variable[13] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
-              variable[14] = variable[13];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[8]: Result */
               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;
+              /* Register variable[8]: Once expression result */
+              if (once_bool_572) variable[8] = once_value_572;
               else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_573 != NIT_NULL) variable[8] = once_value_573;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)) /*new String*/;
+               once_value_573 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_176 = variable[8];
-               once_bool_176 = true;
+               once_value_572 = variable[8];
+               once_bool_572 = true;
               }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label177;
-               return_label177: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_574 != NIT_NULL) variable[9] = once_value_574;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char("), TAG_Int(34)) /*new String*/;
+               once_value_574 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label575;
+               return_label575: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_576 != NIT_NULL) variable[9] = once_value_576;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_576 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_577) variable[8] = once_value_577;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_578 != NIT_NULL) variable[8] = once_value_578;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("succ"), TAG_Int(4)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("succ"), TAG_Int(4)) /*new String*/;
+               once_value_578 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_178 = variable[8];
-               once_bool_178 = true;
+               once_value_577 = variable[8];
+               once_bool_577 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label179;
-               return_label179: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+1)"), TAG_Int(4)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_579 != NIT_NULL) variable[9] = once_value_579;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_579 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label580;
+               return_label580: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_581 != NIT_NULL) variable[9] = once_value_581;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")+1)"), TAG_Int(4)) /*new String*/;
+               once_value_581 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_582) variable[8] = once_value_582;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("prec"), TAG_Int(4)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_583 != NIT_NULL) variable[8] = once_value_583;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("prec"), TAG_Int(4)) /*new String*/;
+               once_value_583 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_180 = variable[8];
-               once_bool_180 = true;
+               once_value_582 = variable[8];
+               once_bool_582 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label181;
-               return_label181: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-1)"), TAG_Int(4)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_584 != NIT_NULL) variable[9] = once_value_584;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_584 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label585;
+               return_label585: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_586 != NIT_NULL) variable[9] = once_value_586;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")-1)"), TAG_Int(4)) /*new String*/;
+               once_value_586 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_587) variable[8] = once_value_587;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_588 != NIT_NULL) variable[8] = once_value_588;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)) /*new String*/;
+               once_value_588 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_182 = variable[8];
-               once_bool_182 = true;
+               once_value_587 = variable[8];
+               once_bool_587 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label183;
-               return_label183: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-'0')"), TAG_Int(6)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_589 != NIT_NULL) variable[9] = once_value_589;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Char("), TAG_Int(19)) /*new String*/;
+               once_value_589 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label590;
+               return_label590: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_591 != NIT_NULL) variable[9] = once_value_591;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")-'0')"), TAG_Int(6)) /*new String*/;
+               once_value_591 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_592) variable[8] = once_value_592;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_593 != NIT_NULL) variable[8] = once_value_593;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)) /*new String*/;
+               once_value_593 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_184 = variable[8];
-               once_bool_184 = true;
+               once_value_592 = variable[8];
+               once_bool_592 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label185;
-               return_label185: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Char("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label186;
-               return_label186: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_594 != NIT_NULL) variable[9] = once_value_594;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_594 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label595;
+               return_label595: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_596 != NIT_NULL) variable[9] = once_value_596;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Char("), TAG_Int(13)) /*new String*/;
+               once_value_596 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label597;
+               return_label597: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_598 != NIT_NULL) variable[9] = once_value_598;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_598 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_599) variable[8] = once_value_599;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_600 != NIT_NULL) variable[8] = once_value_600;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)) /*new String*/;
+               once_value_600 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_187 = variable[8];
-               once_bool_187 = true;
+               once_value_599 = variable[8];
+               once_bool_599 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label188;
-               return_label188: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-UNTAG_Char("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label189;
-               return_label189: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_601 != NIT_NULL) variable[9] = once_value_601;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_601 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label602;
+               return_label602: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_603 != NIT_NULL) variable[9] = once_value_603;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")-UNTAG_Char("), TAG_Int(13)) /*new String*/;
+               once_value_603 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label604;
+               return_label604: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_605 != NIT_NULL) variable[9] = once_value_605;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_605 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_606) variable[8] = once_value_606;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_607 != NIT_NULL) variable[8] = once_value_607;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)) /*new String*/;
+               once_value_607 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_190 = variable[8];
-               once_bool_190 = true;
+               once_value_606 = variable[8];
+               once_bool_606 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label191;
-               return_label191: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")*UNTAG_Char("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label192;
-               return_label192: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_608 != NIT_NULL) variable[9] = once_value_608;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_608 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label609;
+               return_label609: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_610 != NIT_NULL) variable[9] = once_value_610;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")*UNTAG_Char("), TAG_Int(13)) /*new String*/;
+               once_value_610 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label611;
+               return_label611: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_612 != NIT_NULL) variable[9] = once_value_612;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_612 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_613) variable[8] = once_value_613;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_614 != NIT_NULL) variable[8] = once_value_614;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
+               once_value_614 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_193 = variable[8];
-               once_bool_193 = true;
+               once_value_613 = variable[8];
+               once_bool_613 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label194;
-               return_label194: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")/UNTAG_Char("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label195;
-               return_label195: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_615 != NIT_NULL) variable[9] = once_value_615;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_615 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label616;
+               return_label616: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_617 != NIT_NULL) variable[9] = once_value_617;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")/UNTAG_Char("), TAG_Int(13)) /*new String*/;
+               once_value_617 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label618;
+               return_label618: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_619 != NIT_NULL) variable[9] = once_value_619;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_619 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_620) variable[8] = once_value_620;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_621 != NIT_NULL) variable[8] = once_value_621;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)) /*new String*/;
+               once_value_621 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_196 = variable[8];
-               once_bool_196 = true;
+               once_value_620 = variable[8];
+               once_bool_620 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label197;
-               return_label197: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")%UNTAG_Char("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label198;
-               return_label198: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_622 != NIT_NULL) variable[9] = once_value_622;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_622 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label623;
+               return_label623: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_624 != NIT_NULL) variable[9] = once_value_624;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")%UNTAG_Char("), TAG_Int(13)) /*new String*/;
+               once_value_624 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label625;
+               return_label625: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_626 != NIT_NULL) variable[9] = once_value_626;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_626 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_627) variable[8] = once_value_627;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_628 != NIT_NULL) variable[8] = once_value_628;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)) /*new String*/;
+               once_value_628 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_199 = variable[8];
-               once_bool_199 = true;
+               once_value_627 = variable[8];
+               once_bool_627 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label200;
-               return_label200: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<UNTAG_Char("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label201;
-               return_label201: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_629 != NIT_NULL) variable[9] = once_value_629;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_629 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label630;
+               return_label630: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_631 != NIT_NULL) variable[9] = once_value_631;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")<UNTAG_Char("), TAG_Int(13)) /*new String*/;
+               once_value_631 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label632;
+               return_label632: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_633 != NIT_NULL) variable[9] = once_value_633;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_633 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_634) variable[8] = once_value_634;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_635 != NIT_NULL) variable[8] = once_value_635;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)) /*new String*/;
+               once_value_635 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_202 = variable[8];
-               once_bool_202 = true;
+               once_value_634 = variable[8];
+               once_bool_634 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label203;
-               return_label203: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>UNTAG_Char("), TAG_Int(13)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label204;
-               return_label204: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_636 != NIT_NULL) variable[9] = once_value_636;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_636 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label637;
+               return_label637: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_638 != NIT_NULL) variable[9] = once_value_638;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")>UNTAG_Char("), TAG_Int(13)) /*new String*/;
+               once_value_638 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label639;
+               return_label639: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_640 != NIT_NULL) variable[9] = once_value_640;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_640 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_641) variable[8] = once_value_641;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_642 != NIT_NULL) variable[8] = once_value_642;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)) /*new String*/;
+               once_value_642 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_205 = variable[8];
-               once_bool_205 = true;
+               once_value_641 = variable[8];
+               once_bool_641 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label206;
-               return_label206: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<=UNTAG_Char("), TAG_Int(14)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label207;
-               return_label207: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_643 != NIT_NULL) variable[9] = once_value_643;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_643 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label644;
+               return_label644: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_645 != NIT_NULL) variable[9] = once_value_645;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")<=UNTAG_Char("), TAG_Int(14)) /*new String*/;
+               once_value_645 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label646;
+               return_label646: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_647 != NIT_NULL) variable[9] = once_value_647;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_647 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_648) variable[8] = once_value_648;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_649 != NIT_NULL) variable[8] = once_value_649;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)) /*new String*/;
+               once_value_649 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_208 = variable[8];
-               once_bool_208 = true;
+               once_value_648 = variable[8];
+               once_bool_648 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label209;
-               return_label209: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>=UNTAG_Char("), TAG_Int(14)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label210;
-               return_label210: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_650 != NIT_NULL) variable[9] = once_value_650;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)) /*new String*/;
+               once_value_650 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label651;
+               return_label651: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_652 != NIT_NULL) variable[9] = once_value_652;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")>=UNTAG_Char("), TAG_Int(14)) /*new String*/;
+               once_value_652 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label653;
+               return_label653: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_654 != NIT_NULL) variable[9] = once_value_654;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_654 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_655) variable[8] = once_value_655;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_656 != NIT_NULL) variable[8] = once_value_656;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)) /*new String*/;
+               once_value_656 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_211 = variable[8];
-               once_bool_211 = true;
+               once_value_655 = variable[8];
+               once_bool_655 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label212;
-               return_label212: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label213;
-               return_label213: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_657 != NIT_NULL) variable[9] = once_value_657;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)) /*new String*/;
+               once_value_657 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label658;
+               return_label658: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_659 != NIT_NULL) variable[9] = once_value_659;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)) /*new String*/;
+               once_value_659 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label660;
+               return_label660: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_661 != NIT_NULL) variable[9] = once_value_661;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_661 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_662) variable[8] = once_value_662;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_663 != NIT_NULL) variable[8] = once_value_663;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)) /*new String*/;
+               once_value_663 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_214 = variable[8];
-               once_bool_214 = true;
+               once_value_662 = variable[8];
+               once_bool_662 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label215;
-               return_label215: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label216;
-               return_label216: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_664 != NIT_NULL) variable[9] = once_value_664;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)) /*new String*/;
+               once_value_664 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label665;
+               return_label665: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_666 != NIT_NULL) variable[9] = once_value_666;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)) /*new String*/;
+               once_value_666 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label667;
+               return_label667: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_668 != NIT_NULL) variable[9] = once_value_668;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_668 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                }
@@ -5901,331 +11474,577 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
           }
         }
       } else { /*if*/
-        if (once_bool_217) variable[8] = once_value_217;
+        /* Register variable[8]: Once expression result */
+        if (once_bool_669) variable[8] = once_value_669;
         else {
-          variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
+          /* Register variable[8]: Once String constant */
+          if (once_value_670 != NIT_NULL) variable[8] = once_value_670;
+          else {
+            variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)) /*new String*/;
+            once_value_670 = variable[8];
+          }
+          /* Register variable[8]: Result */
+          /* Register variable[8]: Result */
           variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-          once_value_217 = variable[8];
-          once_bool_217 = true;
+          once_value_669 = variable[8];
+          once_bool_669 = true;
         }
+        /* Register variable[8]: Result */
+        /* Register variable[8]: Result */
         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;
+          /* Register variable[8]: Once expression result */
+          if (once_bool_671) variable[8] = once_value_671;
           else {
-            variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+            /* Register variable[8]: Once String constant */
+            if (once_value_672 != NIT_NULL) variable[8] = once_value_672;
+            else {
+              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)) /*new String*/;
+              once_value_672 = variable[8];
+            }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-            once_value_218 = variable[8];
-            once_bool_218 = true;
+            once_value_671 = variable[8];
+            once_bool_671 = true;
           }
+          /* Register variable[8]: Result */
+          /* Register variable[8]: Result */
           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_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];
-            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)));
-            variable[15] = variable[14];
-            if (UNTAG_Bool(variable[15])) { /* and */
-              variable[15] = variable[11];
-              variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-              variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+            variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+            /* Register variable[9]: Once String constant */
+            if (once_value_673 != NIT_NULL) variable[9] = once_value_673;
+            else {
+              variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Bool("), TAG_Int(19)) /*new String*/;
+              once_value_673 = variable[9];
+            }
+            /* Register variable[9]: Result */
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[9]: Local variable */
+            variable[9] =  variable[3] /*p*/;
+            /* Register variable[10]: Local variable */
+            variable[10] =  TAG_Int(0);
+            /* Register variable[11]: Method return value and escape marker */
+            /* Register variable[12]: Result */
+            variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+            /* Ensure var variable[12]: Left 'and' operand*/
+            if (UNTAG_Bool(variable[12])) { /* and */
+              /* Register variable[12]: Result */
+              variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+              /* Register variable[12]: Result */
+              variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
             }
-            variable[14] = variable[15];
-            if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-            variable[14] = variable[11];
-            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_label219;
-            return_label219: while(false);
-            variable[11] = variable[13];
-            variable[12] = variable[11];
-            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-            variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-            variable[14] = variable[13];
-            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+            /* Register variable[12]: Result */
+            if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+            /* Register variable[12]: Result */
+            variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+            /* Register variable[12]: Result */
+            variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+            variable[11] = variable[12];
+            goto return_label674;
+            return_label674: while(false);
+            /* Register variable[9]: Result */
+            variable[9] = variable[11];
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[9]: Once String constant */
+            if (once_value_675 != NIT_NULL) variable[9] = once_value_675;
+            else {
+              variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+              once_value_675 = variable[9];
+            }
+            /* Register variable[9]: Result */
+            /* Ensure var variable[9]: super-string element*/
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+            /* Register variable[8]: Result */
             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;
+            /* Register variable[8]: Once expression result */
+            if (once_bool_676) variable[8] = once_value_676;
             else {
-              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
+              /* Register variable[8]: Once String constant */
+              if (once_value_677 != NIT_NULL) variable[8] = once_value_677;
+              else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)) /*new String*/;
+               once_value_677 = variable[8];
+              }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-              once_value_220 = variable[8];
-              once_bool_220 = true;
+              once_value_676 = variable[8];
+              once_bool_676 = true;
             }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             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_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];
-              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)));
-              variable[15] = variable[14];
-              if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_678 != NIT_NULL) variable[9] = once_value_678;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(-UNTAG_Bool("), TAG_Int(21)) /*new String*/;
+               once_value_678 = variable[9];
+              }
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Local variable */
+              variable[9] =  variable[3] /*p*/;
+              /* Register variable[10]: Local variable */
+              variable[10] =  TAG_Int(0);
+              /* Register variable[11]: Method return value and escape marker */
+              /* Register variable[12]: Result */
+              variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              /* Ensure var variable[12]: Left 'and' operand*/
+              if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+              }
+              /* Register variable[12]: Result */
+              if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+              /* Register variable[12]: Result */
+              variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+              /* Register variable[12]: Result */
+              variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+              variable[11] = variable[12];
+              goto return_label679;
+              return_label679: while(false);
+              /* Register variable[9]: Result */
+              variable[9] = variable[11];
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_680 != NIT_NULL) variable[9] = once_value_680;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_680 = variable[9];
               }
-              variable[14] = variable[15];
-              if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-              variable[14] = variable[11];
-              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_label221;
-              return_label221: while(false);
-              variable[11] = variable[13];
-              variable[12] = variable[11];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-              variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-              variable[14] = variable[13];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[8]: Result */
               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;
+              /* Register variable[8]: Once expression result */
+              if (once_bool_681) variable[8] = once_value_681;
               else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_682 != NIT_NULL) variable[8] = once_value_682;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)) /*new String*/;
+               once_value_682 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_222 = variable[8];
-               once_bool_222 = true;
+               once_value_681 = variable[8];
+               once_bool_681 = true;
               }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label223;
-               return_label223: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")?\"true\\n\":\"false\\n\");"), TAG_Int(22)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_683 != NIT_NULL) variable[9] = once_value_683;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("(void)printf(UNTAG_Bool("), TAG_Int(24)) /*new String*/;
+               once_value_683 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label684;
+               return_label684: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_685 != NIT_NULL) variable[9] = once_value_685;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")?\"true\\n\":\"false\\n\");"), TAG_Int(22)) /*new String*/;
+               once_value_685 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_686) variable[8] = once_value_686;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_687 != NIT_NULL) variable[8] = once_value_687;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)) /*new String*/;
+               once_value_687 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_224 = variable[8];
-               once_bool_224 = true;
+               once_value_686 = variable[8];
+               once_bool_686 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label225;
-               return_label225: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_688 != NIT_NULL) variable[9] = once_value_688;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Bool("), TAG_Int(20)) /*new String*/;
+               once_value_688 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label689;
+               return_label689: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_690 != NIT_NULL) variable[9] = once_value_690;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_690 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_691) variable[8] = once_value_691;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_692 != NIT_NULL) variable[8] = once_value_692;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)) /*new String*/;
+               once_value_692 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_226 = variable[8];
-               once_bool_226 = true;
+               once_value_691 = variable[8];
+               once_bool_691 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label227;
-               return_label227: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_693 != NIT_NULL) variable[9] = once_value_693;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Bool("), TAG_Int(19)) /*new String*/;
+               once_value_693 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label694;
+               return_label694: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_695 != NIT_NULL) variable[9] = once_value_695;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_695 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_696) variable[8] = once_value_696;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_697 != NIT_NULL) variable[8] = once_value_697;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)) /*new String*/;
+               once_value_697 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_228 = variable[8];
-               once_bool_228 = true;
+               once_value_696 = variable[8];
+               once_bool_696 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label229;
-               return_label229: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label230;
-               return_label230: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_698 != NIT_NULL) variable[9] = once_value_698;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)) /*new String*/;
+               once_value_698 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label699;
+               return_label699: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_700 != NIT_NULL) variable[9] = once_value_700;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)) /*new String*/;
+               once_value_700 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label701;
+               return_label701: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_702 != NIT_NULL) variable[9] = once_value_702;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_702 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_703) variable[8] = once_value_703;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_704 != NIT_NULL) variable[8] = once_value_704;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)) /*new String*/;
+               once_value_704 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_231 = variable[8];
-               once_bool_231 = true;
+               once_value_703 = variable[8];
+               once_bool_703 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label232;
-               return_label232: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label233;
-               return_label233: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_705 != NIT_NULL) variable[9] = once_value_705;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)) /*new String*/;
+               once_value_705 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label706;
+               return_label706: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_707 != NIT_NULL) variable[9] = once_value_707;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)) /*new String*/;
+               once_value_707 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label708;
+               return_label708: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_709 != NIT_NULL) variable[9] = once_value_709;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_709 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                }
@@ -6236,283 +12055,478 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
             }
           }
         } else { /*if*/
-          if (once_bool_234) variable[8] = once_value_234;
+          /* Register variable[8]: Once expression result */
+          if (once_bool_710) variable[8] = once_value_710;
           else {
-            variable[8] = NEW_String_string___String___with_native(BOX_NativeString("NativeArray"), TAG_Int(11)); /*new String*/
+            /* Register variable[8]: Once String constant */
+            if (once_value_711 != NIT_NULL) variable[8] = once_value_711;
+            else {
+              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("NativeArray"), TAG_Int(11)) /*new String*/;
+              once_value_711 = variable[8];
+            }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-            once_value_234 = variable[8];
-            once_bool_234 = true;
+            once_value_710 = variable[8];
+            once_bool_710 = true;
           }
+          /* Register variable[8]: Result */
+          /* Register variable[8]: Result */
           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;
+            /* Register variable[8]: Once expression result */
+            if (once_bool_712) variable[8] = once_value_712;
             else {
-              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+              /* Register variable[8]: Once String constant */
+              if (once_value_713 != NIT_NULL) variable[8] = once_value_713;
+              else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)) /*new String*/;
+               once_value_713 = variable[8];
+              }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-              once_value_235 = variable[8];
-              once_bool_235 = true;
+              once_value_712 = variable[8];
+              once_bool_712 = true;
             }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             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_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];
-              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)));
-              variable[15] = variable[14];
-              if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_714 != NIT_NULL) variable[9] = once_value_714;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNBOX_NativeArray("), TAG_Int(26)) /*new String*/;
+               once_value_714 = variable[9];
+              }
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Local variable */
+              variable[9] =  variable[3] /*p*/;
+              /* Register variable[10]: Local variable */
+              variable[10] =  TAG_Int(0);
+              /* Register variable[11]: Method return value and escape marker */
+              /* Register variable[12]: Result */
+              variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+              /* Ensure var variable[12]: Left 'and' operand*/
+              if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+              }
+              /* Register variable[12]: Result */
+              if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+              /* Register variable[12]: Result */
+              variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+              /* Register variable[12]: Result */
+              variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+              variable[11] = variable[12];
+              goto return_label715;
+              return_label715: while(false);
+              /* Register variable[9]: Result */
+              variable[9] = variable[11];
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[9]: Once String constant */
+              if (once_value_716 != NIT_NULL) variable[9] = once_value_716;
+              else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_716 = variable[9];
               }
-              variable[14] = variable[15];
-              if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-              variable[14] = variable[11];
-              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_label236;
-              return_label236: while(false);
-              variable[11] = variable[13];
-              variable[12] = variable[11];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-              variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-              variable[14] = variable[13];
-              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              /* Register variable[9]: Result */
+              /* Ensure var variable[9]: super-string element*/
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+              /* Register variable[8]: Result */
               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;
+              /* Register variable[8]: Once expression result */
+              if (once_bool_717) variable[8] = once_value_717;
               else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_718 != NIT_NULL) variable[8] = once_value_718;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)) /*new String*/;
+               once_value_718 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_237 = variable[8];
-               once_bool_237 = true;
+               once_value_717 = variable[8];
+               once_bool_717 = true;
               }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label238;
-               return_label238: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label239;
-               return_label239: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_719 != NIT_NULL) variable[9] = once_value_719;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("UNBOX_NativeArray("), TAG_Int(18)) /*new String*/;
+               once_value_719 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label720;
+               return_label720: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_721 != NIT_NULL) variable[9] = once_value_721;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_721 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label722;
+               return_label722: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_723 != NIT_NULL) variable[9] = once_value_723;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")]"), TAG_Int(2)) /*new String*/;
+               once_value_723 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_724) variable[8] = once_value_724;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_725 != NIT_NULL) variable[8] = once_value_725;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)) /*new String*/;
+               once_value_725 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_240 = variable[8];
-               once_bool_240 = true;
+               once_value_724 = variable[8];
+               once_bool_724 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label241;
-               return_label241: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label242;
-               return_label242: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               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)));
-               variable[23] = variable[22];
-               if (UNTAG_Bool(variable[23])) { /* and */
-               variable[23] = variable[19];
-               variable[23] = ATTR_array___AbstractArray____length(variable[23]) /*AbstractArray::_length*/;
-               variable[23] = TAG_Bool(UNTAG_Int( variable[20] /*index*/)<UNTAG_Int(variable[23]));
-               }
-               variable[22] = variable[23];
-               if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[22] = variable[19];
-               variable[22] = ATTR_array___Array____items(variable[22]) /*Array::_items*/;
-               variable[22] = UNBOX_NativeArray(variable[22])[UNTAG_Int( variable[20] /*index*/)];
-               variable[21] = variable[22];
-               goto return_label243;
-               return_label243: while(false);
-               variable[19] = variable[21];
-               variable[20] = variable[19];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_726 != NIT_NULL) variable[9] = once_value_726;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("UNBOX_NativeArray("), TAG_Int(18)) /*new String*/;
+               once_value_726 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label727;
+               return_label727: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_728 != NIT_NULL) variable[9] = once_value_728;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_728 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label729;
+               return_label729: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_730 != NIT_NULL) variable[9] = once_value_730;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")]="), TAG_Int(3)) /*new String*/;
+               once_value_730 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(2);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label731;
+               return_label731: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_732 != NIT_NULL) variable[9] = once_value_732;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+               once_value_732 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_733) variable[8] = once_value_733;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("copy_to"), TAG_Int(7)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_734 != NIT_NULL) variable[8] = once_value_734;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("copy_to"), TAG_Int(7)) /*new String*/;
+               once_value_734 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_244 = variable[8];
-               once_bool_244 = true;
+               once_value_733 = variable[8];
+               once_bool_733 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label245;
-               return_label245: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("), UNBOX_NativeArray("), TAG_Int(21)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label246;
-               return_label246: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               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)));
-               variable[23] = variable[22];
-               if (UNTAG_Bool(variable[23])) { /* and */
-               variable[23] = variable[19];
-               variable[23] = ATTR_array___AbstractArray____length(variable[23]) /*AbstractArray::_length*/;
-               variable[23] = TAG_Bool(UNTAG_Int( variable[20] /*index*/)<UNTAG_Int(variable[23]));
-               }
-               variable[22] = variable[23];
-               if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[22] = variable[19];
-               variable[22] = ATTR_array___Array____items(variable[22]) /*Array::_items*/;
-               variable[22] = UNBOX_NativeArray(variable[22])[UNTAG_Int( variable[20] /*index*/)];
-               variable[21] = variable[22];
-               goto return_label247;
-               return_label247: while(false);
-               variable[19] = variable[21];
-               variable[20] = variable[19];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_735 != NIT_NULL) variable[9] = once_value_735;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("(void)memcpy(UNBOX_NativeArray("), TAG_Int(31)) /*new String*/;
+               once_value_735 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label736;
+               return_label736: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_737 != NIT_NULL) variable[9] = once_value_737;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("), UNBOX_NativeArray("), TAG_Int(21)) /*new String*/;
+               once_value_737 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label738;
+               return_label738: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_739 != NIT_NULL) variable[9] = once_value_739;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("), UNTAG_Int("), TAG_Int(13)) /*new String*/;
+               once_value_739 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(2);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label740;
+               return_label740: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_741 != NIT_NULL) variable[9] = once_value_741;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")*sizeof(val_t));"), TAG_Int(17)) /*new String*/;
+               once_value_741 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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*/;
                }
@@ -6520,368 +12534,619 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
               }
             }
           } else { /*if*/
-            if (once_bool_248) variable[8] = once_value_248;
+            /* Register variable[8]: Once expression result */
+            if (once_bool_742) variable[8] = once_value_742;
             else {
-              variable[8] = NEW_String_string___String___with_native(BOX_NativeString("NativeString"), TAG_Int(12)); /*new String*/
+              /* Register variable[8]: Once String constant */
+              if (once_value_743 != NIT_NULL) variable[8] = once_value_743;
+              else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("NativeString"), TAG_Int(12)) /*new String*/;
+               once_value_743 = variable[8];
+              }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-              once_value_248 = variable[8];
-              once_bool_248 = true;
+              once_value_742 = variable[8];
+              once_bool_742 = true;
             }
+            /* Register variable[8]: Result */
+            /* Register variable[8]: Result */
             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;
+              /* Register variable[8]: Once expression result */
+              if (once_bool_744) variable[8] = once_value_744;
               else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_745 != NIT_NULL) variable[8] = once_value_745;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)) /*new String*/;
+               once_value_745 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_249 = variable[8];
-               once_bool_249 = true;
+               once_value_744 = variable[8];
+               once_bool_744 = true;
               }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label250;
-               return_label250: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_746 != NIT_NULL) variable[9] = once_value_746;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNBOX_NativeString("), TAG_Int(27)) /*new String*/;
+               once_value_746 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label747;
+               return_label747: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_748 != NIT_NULL) variable[9] = once_value_748;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+               once_value_748 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_749) variable[8] = once_value_749;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("atoi"), TAG_Int(4)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_750 != NIT_NULL) variable[8] = once_value_750;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("atoi"), TAG_Int(4)) /*new String*/;
+               once_value_750 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_251 = variable[8];
-               once_bool_251 = true;
+               once_value_749 = variable[8];
+               once_bool_749 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label252;
-               return_label252: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_751 != NIT_NULL) variable[9] = once_value_751;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString("), TAG_Int(32)) /*new String*/;
+               once_value_751 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label752;
+               return_label752: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_753 != NIT_NULL) variable[9] = once_value_753;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)) /*new String*/;
+               once_value_753 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_754) variable[8] = once_value_754;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_755 != NIT_NULL) variable[8] = once_value_755;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)) /*new String*/;
+               once_value_755 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_253 = variable[8];
-               once_bool_253 = true;
+               once_value_754 = variable[8];
+               once_bool_754 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label254;
-               return_label254: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label255;
-               return_label255: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_756 != NIT_NULL) variable[9] = once_value_756;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNBOX_NativeString("), TAG_Int(28)) /*new String*/;
+               once_value_756 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label757;
+               return_label757: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_758 != NIT_NULL) variable[9] = once_value_758;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_758 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label759;
+               return_label759: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_760 != NIT_NULL) variable[9] = once_value_760;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")])"), TAG_Int(3)) /*new String*/;
+               once_value_760 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_761) variable[8] = once_value_761;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_762 != NIT_NULL) variable[8] = once_value_762;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)) /*new String*/;
+               once_value_762 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_256 = variable[8];
-               once_bool_256 = true;
+               once_value_761 = variable[8];
+               once_bool_761 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label257;
-               return_label257: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label258;
-               return_label258: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               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)));
-               variable[23] = variable[22];
-               if (UNTAG_Bool(variable[23])) { /* and */
-               variable[23] = variable[19];
-               variable[23] = ATTR_array___AbstractArray____length(variable[23]) /*AbstractArray::_length*/;
-               variable[23] = TAG_Bool(UNTAG_Int( variable[20] /*index*/)<UNTAG_Int(variable[23]));
-               }
-               variable[22] = variable[23];
-               if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[22] = variable[19];
-               variable[22] = ATTR_array___Array____items(variable[22]) /*Array::_items*/;
-               variable[22] = UNBOX_NativeArray(variable[22])[UNTAG_Int( variable[20] /*index*/)];
-               variable[21] = variable[22];
-               goto return_label259;
-               return_label259: while(false);
-               variable[19] = variable[21];
-               variable[20] = variable[19];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_763 != NIT_NULL) variable[9] = once_value_763;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("UNBOX_NativeString("), TAG_Int(19)) /*new String*/;
+               once_value_763 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label764;
+               return_label764: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_765 != NIT_NULL) variable[9] = once_value_765;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_765 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label766;
+               return_label766: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_767 != NIT_NULL) variable[9] = once_value_767;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")]=UNTAG_Char("), TAG_Int(14)) /*new String*/;
+               once_value_767 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(2);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label768;
+               return_label768: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_769 != NIT_NULL) variable[9] = once_value_769;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)) /*new String*/;
+               once_value_769 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_770) variable[8] = once_value_770;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("copy_to"), TAG_Int(7)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_771 != NIT_NULL) variable[8] = once_value_771;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("copy_to"), TAG_Int(7)) /*new String*/;
+               once_value_771 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_260 = variable[8];
-               once_bool_260 = true;
+               once_value_770 = variable[8];
+               once_bool_770 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label261;
-               return_label261: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label262;
-               return_label262: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               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)));
-               variable[23] = variable[22];
-               if (UNTAG_Bool(variable[23])) { /* and */
-               variable[23] = variable[19];
-               variable[23] = ATTR_array___AbstractArray____length(variable[23]) /*AbstractArray::_length*/;
-               variable[23] = TAG_Bool(UNTAG_Int( variable[20] /*index*/)<UNTAG_Int(variable[23]));
-               }
-               variable[22] = variable[23];
-               if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[22] = variable[19];
-               variable[22] = ATTR_array___Array____items(variable[22]) /*Array::_items*/;
-               variable[22] = UNBOX_NativeArray(variable[22])[UNTAG_Int( variable[20] /*index*/)];
-               variable[21] = variable[22];
-               goto return_label263;
-               return_label263: while(false);
-               variable[19] = variable[21];
-               variable[20] = variable[19];
-               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];
-               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)));
-               variable[27] = variable[26];
-               if (UNTAG_Bool(variable[27])) { /* and */
-               variable[27] = variable[23];
-               variable[27] = ATTR_array___AbstractArray____length(variable[27]) /*AbstractArray::_length*/;
-               variable[27] = TAG_Bool(UNTAG_Int( variable[24] /*index*/)<UNTAG_Int(variable[27]));
-               }
-               variable[26] = variable[27];
-               if (!UNTAG_Bool(variable[26])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[26] = variable[23];
-               variable[26] = ATTR_array___Array____items(variable[26]) /*Array::_items*/;
-               variable[26] = UNBOX_NativeArray(variable[26])[UNTAG_Int( variable[24] /*index*/)];
-               variable[25] = variable[26];
-               goto return_label264;
-               return_label264: while(false);
-               variable[23] = variable[25];
-               variable[24] = variable[23];
-               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];
-               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)));
-               variable[31] = variable[30];
-               if (UNTAG_Bool(variable[31])) { /* and */
-               variable[31] = variable[27];
-               variable[31] = ATTR_array___AbstractArray____length(variable[31]) /*AbstractArray::_length*/;
-               variable[31] = TAG_Bool(UNTAG_Int( variable[28] /*index*/)<UNTAG_Int(variable[31]));
-               }
-               variable[30] = variable[31];
-               if (!UNTAG_Bool(variable[30])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[30] = variable[27];
-               variable[30] = ATTR_array___Array____items(variable[30]) /*Array::_items*/;
-               variable[30] = UNBOX_NativeArray(variable[30])[UNTAG_Int( variable[28] /*index*/)];
-               variable[29] = variable[30];
-               goto return_label265;
-               return_label265: while(false);
-               variable[27] = variable[29];
-               variable[28] = variable[27];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[30]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(11)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_772 != NIT_NULL) variable[9] = once_value_772;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("(void)memcpy(UNBOX_NativeString("), TAG_Int(32)) /*new String*/;
+               once_value_772 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label773;
+               return_label773: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_774 != NIT_NULL) variable[9] = once_value_774;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_774 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(4);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label775;
+               return_label775: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_776 != NIT_NULL) variable[9] = once_value_776;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("), UNBOX_NativeString("), TAG_Int(22)) /*new String*/;
+               once_value_776 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label777;
+               return_label777: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_778 != NIT_NULL) variable[9] = once_value_778;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)) /*new String*/;
+               once_value_778 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(3);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label779;
+               return_label779: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_780 != NIT_NULL) variable[9] = once_value_780;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("), UNTAG_Int("), TAG_Int(13)) /*new String*/;
+               once_value_780 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(2);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label781;
+               return_label781: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_782 != NIT_NULL) variable[9] = once_value_782;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)) /*new String*/;
+               once_value_782 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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*/;
                }
@@ -6890,246 +13155,437 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                }
               }
             } else { /*if*/
-              if (once_bool_266) variable[8] = once_value_266;
+              /* Register variable[8]: Once expression result */
+              if (once_bool_783) variable[8] = once_value_783;
               else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_784 != NIT_NULL) variable[8] = once_value_784;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)) /*new String*/;
+               once_value_784 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_266 = variable[8];
-               once_bool_266 = true;
+               once_value_783 = variable[8];
+               once_bool_783 = true;
               }
+              /* Register variable[8]: Result */
+              /* Register variable[8]: Result */
               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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label267;
-               return_label267: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_785 != NIT_NULL) variable[9] = once_value_785;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int((bigint)"), TAG_Int(16)) /*new String*/;
+               once_value_785 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label786;
+               return_label786: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_787 != NIT_NULL) variable[9] = once_value_787;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+               once_value_787 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_788) variable[8] = once_value_788;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("sys"), TAG_Int(3)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_789 != NIT_NULL) variable[8] = once_value_789;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("sys"), TAG_Int(3)) /*new String*/;
+               once_value_789 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_268 = variable[8];
-               once_bool_268 = true;
+               once_value_788 = variable[8];
+               once_bool_788 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_790 != NIT_NULL) variable[8] = once_value_790;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("(G_sys)"), TAG_Int(7)) /*new String*/;
+               once_value_790 = variable[8];
+               }
+               /* Register variable[8]: Result */
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
-               if (once_bool_269) variable[8] = once_value_269;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_791) variable[8] = once_value_791;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("is_same_type"), TAG_Int(12)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_792 != NIT_NULL) variable[8] = once_value_792;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("is_same_type"), TAG_Int(12)) /*new String*/;
+               once_value_792 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_269 = variable[8];
-               once_bool_269 = true;
+               once_value_791 = variable[8];
+               once_bool_791 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label270;
-               return_label270: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")==VAL2VFT("), TAG_Int(11)); /*new String*/
-               variable[14] = variable[13];
-               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)));
-               variable[19] = variable[18];
-               if (UNTAG_Bool(variable[19])) { /* and */
-               variable[19] = variable[15];
-               variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-               variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-               }
-               variable[18] = variable[19];
-               if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[18] = variable[15];
-               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_label271;
-               return_label271: while(false);
-               variable[15] = variable[17];
-               variable[16] = variable[15];
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_793 != NIT_NULL) variable[9] = once_value_793;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool((VAL2VFT("), TAG_Int(18)) /*new String*/;
+               once_value_793 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(0);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label794;
+               return_label794: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_795 != NIT_NULL) variable[9] = once_value_795;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")==VAL2VFT("), TAG_Int(11)) /*new String*/;
+               once_value_795 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label796;
+               return_label796: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_797 != NIT_NULL) variable[9] = once_value_797;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)) /*new String*/;
+               once_value_797 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_798) variable[8] = once_value_798;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("exit"), TAG_Int(4)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_799 != NIT_NULL) variable[8] = once_value_799;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("exit"), TAG_Int(4)) /*new String*/;
+               once_value_799 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_272 = variable[8];
-               once_bool_272 = true;
+               once_value_798 = variable[8];
+               once_bool_798 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label273;
-               return_label273: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_800 != NIT_NULL) variable[9] = once_value_800;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("exit(UNTAG_Int("), TAG_Int(15)) /*new String*/;
+               once_value_800 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label801;
+               return_label801: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_802 != NIT_NULL) variable[9] = once_value_802;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)) /*new String*/;
+               once_value_802 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_803) variable[8] = once_value_803;
+               else {
+               /* Register variable[8]: Once String constant */
+               if (once_value_804 != NIT_NULL) variable[8] = once_value_804;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("calloc_array"), TAG_Int(12)); /*new String*/
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("calloc_array"), TAG_Int(12)) /*new String*/;
+               once_value_804 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_274 = variable[8];
-               once_bool_274 = true;
+               once_value_803 = variable[8];
+               once_bool_803 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label275;
-               return_label275: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(") * sizeof(val_t))))"), TAG_Int(20)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_805 != NIT_NULL) variable[9] = once_value_805;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_NativeArray((val_t*)malloc((UNTAG_Int("), TAG_Int(42)) /*new String*/;
+               once_value_805 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label806;
+               return_label806: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_807 != NIT_NULL) variable[9] = once_value_807;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(") * sizeof(val_t))))"), TAG_Int(20)) /*new String*/;
+               once_value_807 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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;
+               /* Register variable[8]: Once expression result */
+               if (once_bool_808) variable[8] = once_value_808;
                else {
-               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("calloc_string"), TAG_Int(13)); /*new String*/
+               /* Register variable[8]: Once String constant */
+               if (once_value_809 != NIT_NULL) variable[8] = once_value_809;
+               else {
+               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("calloc_string"), TAG_Int(13)) /*new String*/;
+               once_value_809 = variable[8];
+               }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
-               once_value_276 = variable[8];
-               once_bool_276 = true;
+               once_value_808 = variable[8];
+               once_bool_808 = true;
                }
+               /* Register variable[8]: Result */
+               /* Register variable[8]: Result */
                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_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];
-               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)));
-               variable[15] = variable[14];
-               if (UNTAG_Bool(variable[15])) { /* and */
-               variable[15] = variable[11];
-               variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-               variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
-               }
-               variable[14] = variable[15];
-               if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-               variable[14] = variable[11];
-               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_label277;
-               return_label277: while(false);
-               variable[11] = variable[13];
-               variable[12] = variable[11];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(") * sizeof(char))))"), TAG_Int(19)); /*new String*/
-               variable[14] = variable[13];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_810 != NIT_NULL) variable[9] = once_value_810;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_NativeString((char*)malloc((UNTAG_Int("), TAG_Int(42)) /*new String*/;
+               once_value_810 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Local variable */
+               variable[9] =  variable[3] /*p*/;
+               /* Register variable[10]: Local variable */
+               variable[10] =  TAG_Int(1);
+               /* Register variable[11]: Method return value and escape marker */
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+               /* Ensure var variable[12]: Left 'and' operand*/
+               if (UNTAG_Bool(variable[12])) { /* and */
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___AbstractArrayRead____length(variable[9]) /*AbstractArrayRead::_length*/;
+               /* Register variable[12]: Result */
+               variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[12]));
+               }
+               /* Register variable[12]: Result */
+               if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+               /* Register variable[12]: Result */
+               variable[12] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
+               /* Register variable[12]: Result */
+               variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
+               variable[11] = variable[12];
+               goto return_label811;
+               return_label811: while(false);
+               /* Register variable[9]: Result */
+               variable[9] = variable[11];
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_812 != NIT_NULL) variable[9] = once_value_812;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString(") * sizeof(char))))"), TAG_Int(19)) /*new String*/;
+               once_value_812 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
-               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
-               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Intern "), TAG_Int(24)); /*new String*/
-               variable[10] = variable[9];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-               variable[11] =  variable[6] /*n*/;
-               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];
-               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_813 != NIT_NULL) variable[9] = once_value_813;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Intern "), TAG_Int(24)) /*new String*/;
+               once_value_813 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               variable[9] =  variable[6] /*n*/ /* Ensure var: super-string element*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
+               /* Register variable[9]: Once String constant */
+               if (once_value_814 != NIT_NULL) variable[9] = once_value_814;
+               else {
+               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("\\n\"); nit_exit(1);"), TAG_Int(18)) /*new String*/;
+               once_value_814 = variable[9];
+               }
+               /* Register variable[9]: Result */
+               /* Ensure var variable[9]: super-string element*/
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+               /* Register variable[8]: Result */
                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*/;
                }
@@ -7144,3390 +13600,5664 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
       }
     }
   }
+  /* Register variable[8]: Result */
   variable[8] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_static_type___MMSignature___return_type(variable[8])(variable[8]) /*MMSignature::return_type*/;
+  /* Register variable[8]: Result */
   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(CALL_kernel___Object_____eqeq( variable[7] /*s*/)( variable[7] /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
+  /* Ensure var variable[8]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[8])) { /* and */
+    /* Register variable[8]: Result */
+    variable[8] = 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];
+  /* Register variable[8]: Result */
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("NIT_NULL /*stub*/"), TAG_Int(17)); /*new String*/
+    /* Register variable[8]: Once String constant */
+    if (once_value_815 != NIT_NULL) variable[8] = once_value_815;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("NIT_NULL /*stub*/"), TAG_Int(17)) /*new String*/;
+      once_value_815 = variable[8];
+    }
+    /* Register variable[8]: Result */
     variable[7] = variable[8] /*s=*/;
   }
   variable[4] =  variable[7] /*s*/;
-  goto return_label81;
-  return_label81: while(false);
+  goto return_label348;
+  return_label348: while(false);
   tracehead = trace.prev;
   return variable[4];
 }
 val_t compiling_methods___PExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 825, LOCATE_compiling_methods___PExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 977, LOCATE_compiling_methods___PExpr___compile_expr};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **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, 825);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 977);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 void compiling_methods___PExpr___prepare_compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 829, LOCATE_compiling_methods___PExpr___prepare_compile_stmt};
+  struct trace_t trace = {NULL, NULL, 981, LOCATE_compiling_methods___PExpr___prepare_compile_stmt};
   val_t variable[3];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  return_label278: while(false);
+  /* Register variable[2]: Method return value and escape marker */
+  return_label816: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___PExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 834, LOCATE_compiling_methods___PExpr___compile_stmt};
-  val_t variable[5];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 986, LOCATE_compiling_methods___PExpr___compile_stmt};
+  static val_t once_value_818 = NIT_NULL; /* Once value for string variable[3]*/
+  val_t variable[4];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Error!"), TAG_Int(6)); /*new String*/
-  CALL_parser_prod___PNode___printl(variable[3])(variable[3], variable[4]) /*PNode::printl*/;
-  return_label279: while(false);
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Once String constant */
+  if (once_value_818 != NIT_NULL) variable[3] = once_value_818;
+  else {
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Error!"), TAG_Int(6)) /*new String*/;
+    once_value_818 = variable[3];
+  }
+  /* Register variable[3]: Result */
+  CALL_parser_prod___PNode___printl(variable[0])(variable[0], variable[3]) /*PNode::printl*/;
+  return_label817: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___ABlockExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 840, LOCATE_compiling_methods___ABlockExpr___compile_stmt};
+  struct trace_t trace = {NULL, NULL, 992, LOCATE_compiling_methods___ABlockExpr___compile_stmt};
   val_t variable[6];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  variable[3] = CALL_parser_nodes___ABlockExpr___n_expr(variable[3])(variable[3]) /*ABlockExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___ABlockExpr___n_expr(variable[0])(variable[0]) /*ABlockExpr::n_expr*/;
+  /* Register variable[3]: For iterator */
   variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
+    /* Register variable[4]: For 'is_ok' result */
     variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[5]: Local variable */
     variable[5] = variable[4];
     CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*CompilerVisitor::compile_stmt*/;
-    continue_281: while(0);
+    continue_820: while(0);
     CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
-  break_281: while(0);
-  return_label280: while(false);
+  break_820: while(0);
+  return_label819: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AVardeclExpr___prepare_compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 849, LOCATE_compiling_methods___AVardeclExpr___prepare_compile_stmt};
+  struct trace_t trace = {NULL, NULL, 1001, LOCATE_compiling_methods___AVardeclExpr___prepare_compile_stmt};
   val_t variable[5];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
   variable[3] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[4] = variable[0];
-  variable[4] = CALL_syntax_base___AVardeclExpr___variable(variable[4])(variable[4]) /*AVardeclExpr::variable*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_syntax_base___AVardeclExpr___variable(variable[0])(variable[0]) /*AVardeclExpr::variable*/;
   CALL_compiling_methods___CFunctionContext___register_variable(variable[3])(variable[3], variable[4]) /*CFunctionContext::register_variable*/;
-  return_label282: while(false);
+  return_label821: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AVardeclExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 854, LOCATE_compiling_methods___AVardeclExpr___compile_stmt};
-  val_t variable[14];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1006, LOCATE_compiling_methods___AVardeclExpr___compile_stmt};
+    static val_t once_value_823 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_824 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_825 = NIT_NULL; /* Once value for string variable[5]*/
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[5] = variable[0];
-  variable[5] = CALL_syntax_base___AVardeclExpr___variable(variable[5])(variable[5]) /*AVardeclExpr::variable*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___AVardeclExpr___variable(variable[0])(variable[0]) /*AVardeclExpr::variable*/;
+  /* Register variable[4]: Result */
   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] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[4])(variable[4]) /*AVardeclExpr::n_expr*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[0])(variable[0]) /*AVardeclExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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_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];
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-    variable[7] =  variable[3] /*cname*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
-    variable[10] = variable[0];
-    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] = 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];
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_823 != NIT_NULL) variable[5] = once_value_823;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString("/*"), TAG_Int(2)) /*new String*/;
+      once_value_823 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    variable[5] =  variable[3] /*cname*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_824 != NIT_NULL) variable[5] = once_value_824;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString(" is variable "), TAG_Int(13)) /*new String*/;
+      once_value_824 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_syntax_base___AVardeclExpr___variable(variable[0])(variable[0]) /*AVardeclExpr::variable*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_syntax_base___Variable___name(variable[5])(variable[5]) /*Variable::name*/;
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[5]: Once String constant */
+    if (once_value_825 != NIT_NULL) variable[5] = once_value_825;
+    else {
+      variable[5] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+      once_value_825 = variable[5];
+    }
+    /* Register variable[5]: Result */
+    /* Ensure var variable[5]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    /* Register variable[4]: Result */
     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] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[5])(variable[5]) /*AVardeclExpr::n_expr*/;
+    /* Register variable[4]: Local variable */
+    /* Register variable[5]: Result */
+    variable[5] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[0])(variable[0]) /*AVardeclExpr::n_expr*/;
+    /* Register variable[5]: Result */
     variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
     variable[4] = variable[5];
     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);
+  return_label822: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AReturnExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 867, LOCATE_compiling_methods___AReturnExpr___compile_stmt};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1019, LOCATE_compiling_methods___AReturnExpr___compile_stmt};
+    static val_t once_value_827 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_828 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_829 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_830 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  variable[3] = CALL_parser_nodes___AReturnExpr___n_expr(variable[3])(variable[3]) /*AReturnExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___AReturnExpr___n_expr(variable[0])(variable[0]) /*AReturnExpr::n_expr*/;
+  /* Register variable[3]: Result */
   variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], 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] = CALL_parser_nodes___AReturnExpr___n_expr(variable[4])(variable[4]) /*AReturnExpr::n_expr*/;
+    /* Register variable[3]: Local variable */
+    /* Register variable[4]: Result */
+    variable[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable[0])(variable[0]) /*AReturnExpr::n_expr*/;
+    /* Register variable[4]: Result */
     variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
     variable[3] = variable[4];
+    /* Register variable[4]: Result */
     variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[4]: Result */
     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*/;
   }
+  /* Register variable[3]: Result */
   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*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_compiling_methods___CFunctionContext___closure(variable[3])(variable[3]) /*CFunctionContext::closure*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[3]: Result */
+  variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[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];
-    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];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_827 != NIT_NULL) variable[4] = once_value_827;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("closctx->has_broke = &("), TAG_Int(23)) /*new String*/;
+      once_value_827 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_compiling_methods___NitMethodContext___return_value(variable[4])(variable[4]) /*NitMethodContext::return_value*/;
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_828 != NIT_NULL) variable[4] = once_value_828;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)) /*new String*/;
+      once_value_828 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[3]: Result */
     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_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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_829 != NIT_NULL) variable[4] = once_value_829;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)) /*new String*/;
+    once_value_829 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___NitMethodContext___return_label(variable[4])(variable[4]) /*NitMethodContext::return_label*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_830 != NIT_NULL) variable[4] = once_value_830;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_830 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
   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);
+  return_label826: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___ABreakExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 879, LOCATE_compiling_methods___ABreakExpr___compile_stmt};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1031, LOCATE_compiling_methods___ABreakExpr___compile_stmt};
+    static val_t once_value_832 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_833 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_834 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_835 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  variable[3] = CALL_parser_nodes___ABreakExpr___n_expr(variable[3])(variable[3]) /*ABreakExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___ABreakExpr___n_expr(variable[0])(variable[0]) /*ABreakExpr::n_expr*/;
+  /* Register variable[3]: Result */
   variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], 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] = CALL_parser_nodes___ABreakExpr___n_expr(variable[4])(variable[4]) /*ABreakExpr::n_expr*/;
+    /* Register variable[3]: Local variable */
+    /* Register variable[4]: Result */
+    variable[4] = CALL_parser_nodes___ABreakExpr___n_expr(variable[0])(variable[0]) /*ABreakExpr::n_expr*/;
+    /* Register variable[4]: Result */
     variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
     variable[3] = variable[4];
+    /* Register variable[4]: Result */
     variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[4]: Result */
     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*/;
   }
+  /* Register variable[3]: Result */
   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*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_compiling_methods___CFunctionContext___closure(variable[3])(variable[3]) /*CFunctionContext::closure*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[3]: Result */
+  variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[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];
-    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];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_832 != NIT_NULL) variable[4] = once_value_832;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("closctx->has_broke = &("), TAG_Int(23)) /*new String*/;
+      once_value_832 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_compiling_methods___NitMethodContext___break_value(variable[4])(variable[4]) /*NitMethodContext::break_value*/;
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[4]: Once String constant */
+    if (once_value_833 != NIT_NULL) variable[4] = once_value_833;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("); closctx->broke_value = *closctx->has_broke;"), TAG_Int(46)) /*new String*/;
+      once_value_833 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Ensure var variable[4]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+    /* Register variable[3]: Result */
     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_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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_834 != NIT_NULL) variable[4] = once_value_834;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)) /*new String*/;
+    once_value_834 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___NitMethodContext___break_label(variable[4])(variable[4]) /*NitMethodContext::break_label*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_835 != NIT_NULL) variable[4] = once_value_835;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_835 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
   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);
+  return_label831: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AContinueExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 891, LOCATE_compiling_methods___AContinueExpr___compile_stmt};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1043, LOCATE_compiling_methods___AContinueExpr___compile_stmt};
+  static val_t once_value_837 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_838 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  variable[3] = CALL_parser_nodes___AContinueExpr___n_expr(variable[3])(variable[3]) /*AContinueExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___AContinueExpr___n_expr(variable[0])(variable[0]) /*AContinueExpr::n_expr*/;
+  /* Register variable[3]: Result */
   variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], 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] = CALL_parser_nodes___AContinueExpr___n_expr(variable[4])(variable[4]) /*AContinueExpr::n_expr*/;
+    /* Register variable[3]: Local variable */
+    /* Register variable[4]: Result */
+    variable[4] = CALL_parser_nodes___AContinueExpr___n_expr(variable[0])(variable[0]) /*AContinueExpr::n_expr*/;
+    /* Register variable[4]: Result */
     variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
     variable[3] = variable[4];
+    /* Register variable[4]: Result */
     variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[4]: Result */
     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_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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_837 != NIT_NULL) variable[4] = once_value_837;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)) /*new String*/;
+    once_value_837 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___NitMethodContext___continue_label(variable[4])(variable[4]) /*NitMethodContext::continue_label*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_838 != NIT_NULL) variable[4] = once_value_838;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_838 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
   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);
+  return_label836: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AAbortExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 902, LOCATE_compiling_methods___AAbortExpr___compile_stmt};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1054, LOCATE_compiling_methods___AAbortExpr___compile_stmt};
+  static val_t once_value_840 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_841 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
-  variable[6] = variable[0];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[2]: Method return value and escape marker */
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_840 != NIT_NULL) variable[4] = once_value_840;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Aborted\"); "), TAG_Int(28)) /*new String*/;
+    once_value_840 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/, variable[0]) /*CompilerVisitor::printf_locate_error*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_841 != NIT_NULL) variable[4] = once_value_841;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" nit_exit(1);"), TAG_Int(13)) /*new String*/;
+    once_value_841 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
   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);
+  return_label839: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___ADoExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 909, LOCATE_compiling_methods___ADoExpr___compile_stmt};
+  struct trace_t trace = {NULL, NULL, 1061, LOCATE_compiling_methods___ADoExpr___compile_stmt};
   val_t variable[4];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  variable[1] =  param0;
-  variable[3] = variable[0];
-  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] = 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);
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___ADoExpr___n_block(variable[0])(variable[0]) /*ADoExpr::n_block*/;
+  CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::compile_stmt*/;
+  return_label842: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AIfExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 918, LOCATE_compiling_methods___AIfExpr___compile_stmt};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1068, LOCATE_compiling_methods___AIfExpr___compile_stmt};
+  static val_t once_value_844 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_845 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_846 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_847 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AIfExpr___n_expr(variable[4])(variable[4]) /*AIfExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AIfExpr___n_expr(variable[0])(variable[0]) /*AIfExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-  variable[7] =  variable[3] /*e*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_844 != NIT_NULL) variable[5] = once_value_844;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)) /*new String*/;
+    once_value_844 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  variable[5] =  variable[3] /*e*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_845 != NIT_NULL) variable[5] = once_value_845;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(")) { /*if*/"), TAG_Int(11)) /*new String*/;
+    once_value_845 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[4]: Result */
   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] = CALL_parser_nodes___AIfExpr___n_then(variable[4])(variable[4]) /*AIfExpr::n_then*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AIfExpr___n_then(variable[0])(variable[0]) /*AIfExpr::n_then*/;
+  /* Register variable[4]: Result */
   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*/
     CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-    variable[4] = variable[0];
-    variable[4] = CALL_parser_nodes___AIfExpr___n_then(variable[4])(variable[4]) /*AIfExpr::n_then*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_parser_nodes___AIfExpr___n_then(variable[0])(variable[0]) /*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] = CALL_parser_nodes___AIfExpr___n_else(variable[4])(variable[4]) /*AIfExpr::n_else*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AIfExpr___n_else(variable[0])(variable[0]) /*AIfExpr::n_else*/;
+  /* Register variable[4]: Result */
   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*/
+    /* Register variable[4]: Once String constant */
+    if (once_value_846 != NIT_NULL) variable[4] = once_value_846;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString("} else { /*if*/"), TAG_Int(15)) /*new String*/;
+      once_value_846 = variable[4];
+    }
+    /* Register variable[4]: Result */
     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] = CALL_parser_nodes___AIfExpr___n_else(variable[4])(variable[4]) /*AIfExpr::n_else*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_parser_nodes___AIfExpr___n_else(variable[0])(variable[0]) /*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*/
+  /* Register variable[4]: Once String constant */
+  if (once_value_847 != NIT_NULL) variable[4] = once_value_847;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_847 = variable[4];
+  }
+  /* Register variable[4]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  return_label289: while(false);
+  return_label843: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___AIfexprExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 939, LOCATE_compiling_methods___AIfexprExpr___compile_expr};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1089, LOCATE_compiling_methods___AIfexprExpr___compile_expr};
+  static val_t once_value_849 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_850 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_851 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_852 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_853 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_854 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[8];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable[4])(variable[4]) /*AIfexprExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable[0])(variable[0]) /*AIfexprExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-  variable[7] =  variable[3] /*e*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_849 != NIT_NULL) variable[5] = once_value_849;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)) /*new String*/;
+    once_value_849 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  variable[5] =  variable[3] /*e*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_850 != NIT_NULL) variable[5] = once_value_850;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(")) { /*if*/"), TAG_Int(11)) /*new String*/;
+    once_value_850 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[4]: Result */
   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] = CALL_parser_nodes___AIfexprExpr___n_then(variable[5])(variable[5]) /*AIfexprExpr::n_then*/;
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AIfexprExpr___n_then(variable[0])(variable[0]) /*AIfexprExpr::n_then*/;
+  /* Register variable[5]: Result */
   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*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_851 != NIT_NULL) variable[6] = once_value_851;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Then value"), TAG_Int(10)) /*new String*/;
+    once_value_851 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*CompilerVisitor::ensure_var*/;
   variable[4] = variable[5];
   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*/
+  /* Register variable[5]: Once String constant */
+  if (once_value_852 != NIT_NULL) variable[5] = once_value_852;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("} else { /*if*/"), TAG_Int(15)) /*new String*/;
+    once_value_852 = variable[5];
+  }
+  /* Register variable[5]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  /* Register variable[5]: Result */
   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] = CALL_parser_nodes___AIfexprExpr___n_else(variable[6])(variable[6]) /*AIfexprExpr::n_else*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_parser_nodes___AIfexprExpr___n_else(variable[0])(variable[0]) /*AIfexprExpr::n_else*/;
+  /* Register variable[6]: Result */
   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*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_853 != NIT_NULL) variable[7] = once_value_853;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Else value"), TAG_Int(10)) /*new String*/;
+    once_value_853 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*CompilerVisitor::ensure_var*/;
   variable[5] = variable[6];
   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*/
+  /* Register variable[6]: Once String constant */
+  if (once_value_854 != NIT_NULL) variable[6] = once_value_854;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_854 = variable[6];
+  }
+  /* Register variable[6]: Result */
   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);
+  goto return_label848;
+  return_label848: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 void compiling_methods___AControlableBlock___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 960, LOCATE_compiling_methods___AControlableBlock___compile_stmt};
-  val_t variable[13];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1111, LOCATE_compiling_methods___AControlableBlock___compile_stmt};
+  static val_t once_value_856 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_857 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_858 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_859 = NIT_NULL; /* Once value for string variable[8]*/
+  val_t variable[9];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___NitMethodContext___break_label(variable[4])(variable[4]) /*NitMethodContext::break_label*/;
   variable[3] = variable[4];
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___NitMethodContext___continue_label(variable[5])(variable[5]) /*NitMethodContext::continue_label*/;
   variable[4] = variable[5];
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
   variable[6] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
   variable[5] = variable[6];
+  /* Register variable[6]: Result */
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
-  variable[10] =  variable[5] /*id*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_856 != NIT_NULL) variable[8] = once_value_856;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("break_"), TAG_Int(6)) /*new String*/;
+    once_value_856 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  variable[8] =  variable[5] /*id*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_857 != NIT_NULL) variable[8] = once_value_857;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_857 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
   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=*/;
+  /* Register variable[6]: Result */
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
-  variable[10] =  variable[5] /*id*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_858 != NIT_NULL) variable[8] = once_value_858;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("continue_"), TAG_Int(9)) /*new String*/;
+    once_value_858 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  variable[8] =  variable[5] /*id*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_859 != NIT_NULL) variable[8] = once_value_859;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_859 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
   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];
-  CALL_compiling_methods___AControlableBlock___compile_inside_block(variable[6])(variable[6],  variable[1] /*v*/) /*AControlableBlock::compile_inside_block*/;
+  CALL_compiling_methods___AControlableBlock___compile_inside_block(variable[0])(variable[0],  variable[1] /*v*/) /*AControlableBlock::compile_inside_block*/;
+  /* Register variable[6]: Result */
   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=*/;
+  /* Register variable[6]: Result */
   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);
+  return_label855: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AControlableBlock___compile_inside_block(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 959, LOCATE_compiling_methods___AControlableBlock___compile_inside_block};
+  struct trace_t trace = {NULL, NULL, 1110, LOCATE_compiling_methods___AControlableBlock___compile_inside_block};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **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, 959);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1110);
   nit_exit(1);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AWhileExpr___compile_inside_block(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 977, LOCATE_compiling_methods___AWhileExpr___compile_inside_block};
-  val_t variable[11];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1129, LOCATE_compiling_methods___AWhileExpr___compile_inside_block};
+  static val_t once_value_861 = NIT_NULL; /* Once value for string variable[3]*/
+  static val_t once_value_862 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_863 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_864 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_865 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_866 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_867 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_868 = NIT_NULL; /* Once value for string variable[5]*/
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___with_native(BOX_NativeString("while (true) { /*while*/"), TAG_Int(24)); /*new String*/
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Once String constant */
+  if (once_value_861 != NIT_NULL) variable[3] = once_value_861;
+  else {
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("while (true) { /*while*/"), TAG_Int(24)) /*new String*/;
+    once_value_861 = variable[3];
+  }
+  /* Register variable[3]: Result */
   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] = CALL_parser_nodes___AWhileExpr___n_expr(variable[4])(variable[4]) /*AWhileExpr::n_expr*/;
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AWhileExpr___n_expr(variable[0])(variable[0]) /*AWhileExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-  variable[7] =  variable[3] /*e*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_862 != NIT_NULL) variable[5] = once_value_862;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)) /*new String*/;
+    once_value_862 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  variable[5] =  variable[3] /*e*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_863 != NIT_NULL) variable[5] = once_value_863;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(")) break; /* while*/"), TAG_Int(20)) /*new String*/;
+    once_value_863 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[4]: Result */
   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] = 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] = 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*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AWhileExpr___n_block(variable[0])(variable[0]) /*AWhileExpr::n_block*/;
+  CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_stmt*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_864 != NIT_NULL) variable[5] = once_value_864;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_864 = variable[5];
   }
-  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
-  variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable[6] = variable[5];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-  variable[7] = 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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___NitMethodContext___continue_label(variable[5])(variable[5]) /*NitMethodContext::continue_label*/;
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_865 != NIT_NULL) variable[5] = once_value_865;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)) /*new String*/;
+    once_value_865 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
   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*/
+  /* Register variable[4]: Once String constant */
+  if (once_value_866 != NIT_NULL) variable[4] = once_value_866;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_866 = variable[4];
+  }
+  /* Register variable[4]: Result */
   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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_867 != NIT_NULL) variable[5] = once_value_867;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_867 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___NitMethodContext___break_label(variable[5])(variable[5]) /*NitMethodContext::break_label*/;
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_868 != NIT_NULL) variable[5] = once_value_868;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)) /*new String*/;
+    once_value_868 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
   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);
+  return_label860: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AForExpr___compile_inside_block(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 995, LOCATE_compiling_methods___AForExpr___compile_inside_block};
-  val_t variable[4];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  variable[1] =  param0;
-  variable[3] = variable[0];
-  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};
-  val_t variable[18];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1146, LOCATE_compiling_methods___AForExpr___compile_inside_block};
+  static val_t once_value_870 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_871 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_872 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_873 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_874 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_875 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_876 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_877 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_878 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_879 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_880 = NIT_NULL; /* Once value for string variable[10]*/
+  val_t variable[11];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AForVardeclExpr___n_expr(variable[4])(variable[4]) /*AForVardeclExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AForExpr___n_expr(variable[0])(variable[0]) /*AForExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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] = CALL_typing___AForVardeclExpr___meth_iterator(variable[5])(variable[5]) /*AForVardeclExpr::meth_iterator*/;
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_typing___AForExpr___meth_iterator(variable[0])(variable[0]) /*AForExpr::meth_iterator*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_static_type___MMLocalProperty___signature(variable[5])(variable[5]) /*MMLocalProperty::signature*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_static_type___MMSignature___return_type(variable[5])(variable[5]) /*MMSignature::return_type*/;
   variable[4] = variable[5];
+  /* Register variable[5]: Result */
   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*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
   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*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_870 != NIT_NULL) variable[7] = once_value_870;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("For iterator"), TAG_Int(12)) /*new String*/;
+    once_value_870 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___CFunctionContext___get_var(variable[6])(variable[6], variable[7]) /*CFunctionContext::get_var*/;
   variable[5] = variable[6];
-  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]*/
+  /* Register variable[6]: Result */
+  variable[6] = CALL_typing___AForExpr___meth_iterator(variable[0])(variable[0]) /*AForExpr::meth_iterator*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
   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*/;
+  /* Register variable[7]: Result */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___MMMethod___compile_expr_call(variable[6])(variable[6],  variable[1] /*v*/, variable[7]) /*MMMethod::compile_expr_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*/
+  /* Register variable[6]: Once String constant */
+  if (once_value_871 != NIT_NULL) variable[6] = once_value_871;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("while (true) { /*for*/"), TAG_Int(22)) /*new String*/;
+    once_value_871 = variable[6];
+  }
+  /* Register variable[6]: Result */
   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*/;
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
   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*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_872 != NIT_NULL) variable[8] = once_value_872;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("For 'is_ok' result"), TAG_Int(18)) /*new String*/;
+    once_value_872 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Register variable[7]: Result */
+  variable[7] = CALL_compiling_methods___CFunctionContext___get_var(variable[7])(variable[7], variable[8]) /*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]*/
+  /* Register variable[7]: Result */
+  variable[7] = CALL_typing___AForExpr___meth_is_ok(variable[0])(variable[0]) /*AForExpr::meth_is_ok*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
   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*/;
+  /* Register variable[8]: Result */
+  /* Register variable[7]: Result */
+  variable[7] = CALL_compiling_methods___MMMethod___compile_expr_call(variable[7])(variable[7],  variable[1] /*v*/, variable[8]) /*MMMethod::compile_expr_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] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_873 != NIT_NULL) variable[8] = once_value_873;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)) /*new String*/;
+    once_value_873 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  variable[8] =  variable[6] /*ok*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_874 != NIT_NULL) variable[8] = once_value_874;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")) break; /*for*/"), TAG_Int(17)) /*new String*/;
+    once_value_874 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
   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*/;
+  /* Register variable[7]: Result */
   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]*/
+  /* Register variable[7]: Local variable */
+  /* Register variable[8]: Result */
+  variable[8] = CALL_typing___AForExpr___meth_item(variable[0])(variable[0]) /*AForExpr::meth_item*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
   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*/;
+  /* Register variable[9]: Result */
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___MMMethod___compile_expr_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_expr_call*/;
   variable[7] = variable[8];
-  variable[8] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/,  variable[7] /*e*/) /*CompilerVisitor::ensure_var*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_875 != NIT_NULL) variable[8] = once_value_875;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("For item"), TAG_Int(8)) /*new String*/;
+    once_value_875 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/,  variable[7] /*e*/, variable[8]) /*CompilerVisitor::ensure_var*/;
   variable[7] = variable[8] /*e=*/;
+  /* Register variable[8]: Local variable */
+  /* Register variable[9]: Result */
   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*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_syntax_base___AForExpr___variable(variable[0])(variable[0]) /*AForExpr::variable*/;
+  /* Register variable[9]: Result */
   variable[9] = CALL_compiling_methods___CFunctionContext___register_variable(variable[9])(variable[9], variable[10]) /*CFunctionContext::register_variable*/;
   variable[8] = variable[9];
   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] /*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] = 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*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_parser_nodes___AForExpr___n_block(variable[0])(variable[0]) /*AForExpr::n_block*/;
+  CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::compile_stmt*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_876 != NIT_NULL) variable[10] = once_value_876;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_876 = variable[10];
   }
-  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];
-  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);}
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___NitMethodContext___continue_label(variable[10])(variable[10]) /*NitMethodContext::continue_label*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_877 != NIT_NULL) variable[10] = once_value_877;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)) /*new String*/;
+    once_value_877 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  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*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_typing___AForExpr___meth_next(variable[0])(variable[0]) /*AForExpr::meth_next*/;
+  variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  variable[5] /*iter*/) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  CALL_compiling_methods___MMMethod___compile_stmt_call(variable[9])(variable[9],  variable[1] /*v*/, variable[10]) /*MMMethod::compile_stmt_call*/;
   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];
-  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);
+  /* Register variable[9]: Once String constant */
+  if (once_value_878 != NIT_NULL) variable[9] = once_value_878;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_878 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_879 != NIT_NULL) variable[10] = once_value_879;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_879 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___NitMethodContext___break_label(variable[10])(variable[10]) /*NitMethodContext::break_label*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_880 != NIT_NULL) variable[10] = once_value_880;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)) /*new String*/;
+    once_value_880 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  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*/;
+  return_label869: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AAssertExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1035, LOCATE_compiling_methods___AAssertExpr___compile_stmt};
-  val_t variable[18];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1173, LOCATE_compiling_methods___AAssertExpr___compile_stmt};
+  static val_t once_value_882 = NIT_NULL; /* Once value for string variable[5]*/
+    static val_t once_value_883 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_884 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_885 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_886 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_887 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_888 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AAssertExpr___n_expr(variable[4])(variable[4]) /*AAssertExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAssertExpr___n_expr(variable[0])(variable[0]) /*AAssertExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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*/
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Once String constant */
+  if (once_value_882 != NIT_NULL) variable[5] = once_value_882;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_882 = variable[5];
+  }
+  /* Register variable[5]: Result */
   variable[4] = variable[5];
-  variable[5] = variable[0];
-  variable[5] = CALL_parser_nodes___AAssertExpr___n_id(variable[5])(variable[5]) /*AAssertExpr::n_id*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AAssertExpr___n_id(variable[0])(variable[0]) /*AAssertExpr::n_id*/;
+  /* Register variable[5]: Result */
   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_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];
-    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-    variable[8] = variable[0];
-    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];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_883 != NIT_NULL) variable[6] = once_value_883;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" '"), TAG_Int(2)) /*new String*/;
+      once_value_883 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_parser_nodes___AAssertExpr___n_id(variable[0])(variable[0]) /*AAssertExpr::n_id*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_lexer___Token___text(variable[6])(variable[6]) /*Token::text*/;
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_884 != NIT_NULL) variable[6] = once_value_884;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("' "), TAG_Int(2)) /*new String*/;
+      once_value_884 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[5]: Result */
     variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
     variable[4] = variable[5] /*s=*/;
   }
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[8] =  variable[3] /*e*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
-  variable[11] =  variable[4] /*s*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
-  variable[14] = variable[0];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[17]) /*AbstractArray::add*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_885 != NIT_NULL) variable[6] = once_value_885;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)) /*new String*/;
+    once_value_885 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*e*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_886 != NIT_NULL) variable[6] = once_value_886;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(")) { fprintf(stderr, \"Assert%s failed\", \""), TAG_Int(41)) /*new String*/;
+    once_value_886 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[4] /*s*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_887 != NIT_NULL) variable[6] = once_value_887;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("\"); "), TAG_Int(4)) /*new String*/;
+    once_value_887 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/, variable[0]) /*CompilerVisitor::printf_locate_error*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_888 != NIT_NULL) variable[6] = once_value_888;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" nit_exit(1);}"), TAG_Int(14)) /*new String*/;
+    once_value_888 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
   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);
+  return_label881: 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, 1047, LOCATE_compiling_methods___AVarExpr___compile_expr};
-  val_t variable[14];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1185, LOCATE_compiling_methods___AVarExpr___compile_expr};
+  static val_t once_value_890 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_891 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_892 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  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];
-  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] = 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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
-  variable[10] = variable[0];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
+  /* Register variable[2]: Method return value and escape marker */
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_890 != NIT_NULL) variable[4] = once_value_890;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)) /*new String*/;
+    once_value_890 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[0])(variable[0]) /*AVarFormExpr::variable*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CFunctionContext___varname(variable[4])(variable[4], variable[5]) /*CFunctionContext::varname*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_891 != NIT_NULL) variable[4] = once_value_891;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" /*"), TAG_Int(3)) /*new String*/;
+    once_value_891 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_syntax_base___AVarFormExpr___variable(variable[0])(variable[0]) /*AVarFormExpr::variable*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_syntax_base___Variable___name(variable[4])(variable[4]) /*Variable::name*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_892 != NIT_NULL) variable[4] = once_value_892;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_892 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
   variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label296;
-  return_label296: while(false);
+  goto return_label889;
+  return_label889: 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, 1054, LOCATE_compiling_methods___AVarAssignExpr___compile_stmt};
-  val_t variable[15];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1192, LOCATE_compiling_methods___AVarAssignExpr___compile_stmt};
+  static val_t once_value_894 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_895 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_896 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[4])(variable[4]) /*AAssignFormExpr::n_value*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[0])(variable[0]) /*AAssignFormExpr::n_value*/;
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[5] = variable[0];
-  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[5])(variable[5]) /*AVarFormExpr::variable*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[0])(variable[0]) /*AVarFormExpr::variable*/;
+  /* Register variable[4]: Result */
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[8] =  variable[3] /*e*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
-  variable[11] = variable[0];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_894 != NIT_NULL) variable[6] = once_value_894;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_894 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*e*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_895 != NIT_NULL) variable[6] = once_value_895;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" /*"), TAG_Int(3)) /*new String*/;
+    once_value_895 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_syntax_base___AVarFormExpr___variable(variable[0])(variable[0]) /*AVarFormExpr::variable*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_syntax_base___Variable___name(variable[6])(variable[6]) /*Variable::name*/;
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_896 != NIT_NULL) variable[6] = once_value_896;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("=*/"), TAG_Int(3)) /*new String*/;
+    once_value_896 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
   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);
+  return_label893: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AVarReassignExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1062, LOCATE_compiling_methods___AVarReassignExpr___compile_stmt};
-  val_t variable[17];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1200, LOCATE_compiling_methods___AVarReassignExpr___compile_stmt};
+  static val_t once_value_898 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_899 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_900 = NIT_NULL; /* Once value for string variable[8]*/
+  val_t variable[9];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[5] = variable[0];
-  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[5])(variable[5]) /*AVarFormExpr::variable*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[0])(variable[0]) /*AVarFormExpr::variable*/;
+  /* Register variable[4]: Result */
   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] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[5])(variable[5]) /*AReassignFormExpr::n_value*/;
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[0])(variable[0]) /*AReassignFormExpr::n_value*/;
+  /* Register variable[5]: Result */
   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] = 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]*/
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_typing___AReassignFormExpr___assign_method(variable[0])(variable[0]) /*AReassignFormExpr::assign_method*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(2)) /*new Array[String]*/ /* Ensure var: Literal array*/;
   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*/;
+  /* Register variable[7]: Result */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___MMMethod___compile_expr_call(variable[6])(variable[6],  variable[1] /*v*/, variable[7]) /*MMMethod::compile_expr_call*/;
   variable[5] = variable[6];
+  /* Register variable[6]: Result */
   variable[6] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[7] = variable[0];
-  variable[7] = CALL_syntax_base___AVarFormExpr___variable(variable[7])(variable[7]) /*AVarFormExpr::variable*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_syntax_base___AVarFormExpr___variable(variable[0])(variable[0]) /*AVarFormExpr::variable*/;
+  /* Register variable[6]: Result */
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
-  variable[10] =  variable[5] /*e3*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
-  variable[13] = variable[0];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[16]) /*AbstractArray::add*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_898 != NIT_NULL) variable[8] = once_value_898;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_898 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  variable[8] =  variable[5] /*e3*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_899 != NIT_NULL) variable[8] = once_value_899;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /*"), TAG_Int(3)) /*new String*/;
+    once_value_899 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_syntax_base___AVarFormExpr___variable(variable[0])(variable[0]) /*AVarFormExpr::variable*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_syntax_base___Variable___name(variable[8])(variable[8]) /*Variable::name*/;
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_900 != NIT_NULL) variable[8] = once_value_900;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_900 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
   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);
+  return_label897: 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, 1072, LOCATE_compiling_methods___ASelfExpr___compile_expr};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1210, LOCATE_compiling_methods___ASelfExpr___compile_expr};
+  val_t variable[9];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
   variable[3] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___NitMethodContext___method_params(variable[4])(variable[4]) /*NitMethodContext::method_params*/;
+  /* Register variable[5]: Local variable */
   variable[5] = variable[4];
+  /* Register variable[6]: Local variable */
   variable[6] =  TAG_Int(0);
+  /* Register variable[7]: Method return value and escape marker */
+  /* Register variable[8]: Result */
   variable[8] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-  variable[9] = variable[8];
-  if (UNTAG_Bool(variable[9])) { /* and */
-    variable[9] = variable[5];
-    variable[9] = ATTR_array___AbstractArray____length(variable[9]) /*AbstractArray::_length*/;
-    variable[9] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)<UNTAG_Int(variable[9]));
+  /* Ensure var variable[8]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[8])) { /* and */
+    /* Register variable[8]: Result */
+    variable[8] = ATTR_array___AbstractArrayRead____length(variable[5]) /*AbstractArrayRead::_length*/;
+    /* Register variable[8]: Result */
+    variable[8] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)<UNTAG_Int(variable[8]));
   }
-  variable[8] = variable[9];
-  if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[8] = variable[5];
-  variable[8] = ATTR_array___Array____items(variable[8]) /*Array::_items*/;
+  /* Register variable[8]: Result */
+  if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[8]: Result */
+  variable[8] = ATTR_array___Array____items(variable[5]) /*Array::_items*/;
+  /* Register variable[8]: Result */
   variable[8] = UNBOX_NativeArray(variable[8])[UNTAG_Int( variable[6] /*index*/)];
   variable[7] = variable[8];
-  goto return_label300;
-  return_label300: while(false);
+  goto return_label902;
+  return_label902: while(false);
+  /* Register variable[4]: Result */
   variable[4] = variable[7];
+  /* Register variable[3]: Result */
   variable[3] = CALL_compiling_methods___CFunctionContext___varname(variable[3])(variable[3], variable[4]) /*CFunctionContext::varname*/;
   variable[2] = variable[3];
-  goto return_label299;
-  return_label299: while(false);
+  goto return_label901;
+  return_label901: 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, 1079, LOCATE_compiling_methods___AOrExpr___compile_expr};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1217, LOCATE_compiling_methods___AOrExpr___compile_expr};
+  static val_t once_value_904 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_905 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_906 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_907 = NIT_NULL; /* Once value for string variable[5]*/
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AOrExpr___n_expr(variable[4])(variable[4]) /*AOrExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AOrExpr___n_expr(variable[0])(variable[0]) /*AOrExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_904 != NIT_NULL) variable[5] = once_value_904;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Left 'or' operand"), TAG_Int(17)) /*new String*/;
+    once_value_904 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*CompilerVisitor::ensure_var*/;
   variable[3] = variable[4];
-  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
-  variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
-  variable[6] = variable[5];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-  variable[7] =  variable[3] /*e*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_905 != NIT_NULL) variable[5] = once_value_905;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)) /*new String*/;
+    once_value_905 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  variable[5] =  variable[3] /*e*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_906 != NIT_NULL) variable[5] = once_value_906;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(")) { /* or */"), TAG_Int(13)) /*new String*/;
+    once_value_906 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[4]: Result */
   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] = CALL_parser_nodes___AOrExpr___n_expr2(variable[5])(variable[5]) /*AOrExpr::n_expr2*/;
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AOrExpr___n_expr2(variable[0])(variable[0]) /*AOrExpr::n_expr2*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
   variable[4] = variable[5];
   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*/
+  /* Register variable[5]: Once String constant */
+  if (once_value_907 != NIT_NULL) variable[5] = once_value_907;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_907 = variable[5];
+  }
+  /* Register variable[5]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
   variable[2] =  variable[3] /*e*/;
-  goto return_label301;
-  return_label301: while(false);
+  goto return_label903;
+  return_label903: 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, 1094, LOCATE_compiling_methods___AAndExpr___compile_expr};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1232, LOCATE_compiling_methods___AAndExpr___compile_expr};
+  static val_t once_value_909 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_910 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_911 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_912 = NIT_NULL; /* Once value for string variable[5]*/
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AAndExpr___n_expr(variable[4])(variable[4]) /*AAndExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAndExpr___n_expr(variable[0])(variable[0]) /*AAndExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_909 != NIT_NULL) variable[5] = once_value_909;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Left 'and' operand"), TAG_Int(18)) /*new String*/;
+    once_value_909 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*CompilerVisitor::ensure_var*/;
   variable[3] = variable[4];
-  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
-  variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)); /*new String*/
-  variable[6] = variable[5];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-  variable[7] =  variable[3] /*e*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_910 != NIT_NULL) variable[5] = once_value_910;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)) /*new String*/;
+    once_value_910 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  variable[5] =  variable[3] /*e*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_911 != NIT_NULL) variable[5] = once_value_911;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(")) { /* and */"), TAG_Int(14)) /*new String*/;
+    once_value_911 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  /* Ensure var variable[5]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[4]: Result */
   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] = CALL_parser_nodes___AAndExpr___n_expr2(variable[5])(variable[5]) /*AAndExpr::n_expr2*/;
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AAndExpr___n_expr2(variable[0])(variable[0]) /*AAndExpr::n_expr2*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
   variable[4] = variable[5];
   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*/
+  /* Register variable[5]: Once String constant */
+  if (once_value_912 != NIT_NULL) variable[5] = once_value_912;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_912 = variable[5];
+  }
+  /* Register variable[5]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
   variable[2] =  variable[3] /*e*/;
-  goto return_label302;
-  return_label302: while(false);
+  goto return_label908;
+  return_label908: 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, 1109, LOCATE_compiling_methods___ANotExpr___compile_expr};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1247, LOCATE_compiling_methods___ANotExpr___compile_expr};
+  static val_t once_value_914 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_915 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
-  variable[6] = variable[0];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[2]: Method return value and escape marker */
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_914 != NIT_NULL) variable[4] = once_value_914;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Bool(!UNTAG_Bool("), TAG_Int(22)) /*new String*/;
+    once_value_914 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___ANotExpr___n_expr(variable[0])(variable[0]) /*ANotExpr::n_expr*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_915 != NIT_NULL) variable[4] = once_value_915;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+    once_value_915 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
   variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label303;
-  return_label303: while(false);
+  goto return_label913;
+  return_label913: 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, 1254, LOCATE_compiling_methods___AEeExpr___compile_expr};
+  static val_t once_value_917 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_918 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_919 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AEeExpr___n_expr(variable[0])(variable[0]) /*AEeExpr::n_expr*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AEeExpr___n_expr2(variable[0])(variable[0]) /*AEeExpr::n_expr2*/;
+  /* Register variable[5]: Result */
+  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_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_917 != NIT_NULL) variable[6] = once_value_917;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(IS_EQUAL_NN("), TAG_Int(21)) /*new String*/;
+    once_value_917 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*e*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_918 != NIT_NULL) variable[6] = once_value_918;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)) /*new String*/;
+    once_value_918 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[4] /*e2*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_919 != NIT_NULL) variable[6] = once_value_919;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
+    once_value_919 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  variable[2] = variable[5];
+  goto return_label916;
+  return_label916: 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, 1116, LOCATE_compiling_methods___AEeExpr___compile_expr};
-  val_t variable[14];
-  void **closurevariable = NULL;
+val_t compiling_methods___AIsaExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1263, LOCATE_compiling_methods___AIsaExpr___compile_expr};
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AEeExpr___n_expr(variable[4])(variable[4]) /*AEeExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AIsaExpr___n_expr(variable[0])(variable[0]) /*AIsaExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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] = 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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[8] =  variable[3] /*e*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
-  variable[11] =  variable[4] /*e2*/;
-  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];
-  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_label304;
-  return_label304: while(false);
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AIsaExpr___n_type(variable[0])(variable[0]) /*AIsaExpr::n_type*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_typing___PType___stype(variable[4])(variable[4]) /*PType::stype*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AIsaExpr___n_expr(variable[0])(variable[0]) /*AIsaExpr::n_expr*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[5])(variable[5]) /*PExpr::stype*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___MMType___compile_cast(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*e*/, variable[5]) /*MMType::compile_cast*/;
+  variable[2] = variable[4];
+  goto return_label920;
+  return_label920: 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, 1125, LOCATE_compiling_methods___AIsaExpr___compile_expr};
-  val_t variable[5];
-  void **closurevariable = NULL;
+val_t compiling_methods___AAsCastExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1271, LOCATE_compiling_methods___AAsCastExpr___compile_expr};
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AIsaExpr___n_expr(variable[4])(variable[4]) /*AIsaExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAsCastExpr___n_expr(variable[0])(variable[0]) /*AAsCastExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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] = CALL_parser_nodes___AIsaExpr___n_type(variable[4])(variable[4]) /*AIsaExpr::n_type*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAsCastExpr___n_type(variable[0])(variable[0]) /*AAsCastExpr::n_type*/;
+  /* Register variable[4]: Result */
   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_label305;
-  return_label305: while(false);
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AAsCastExpr___n_expr(variable[0])(variable[0]) /*AAsCastExpr::n_expr*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[5])(variable[5]) /*PExpr::stype*/;
+  CALL_compiling_methods___MMType___compile_type_check(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*e*/, variable[0], variable[5]) /*MMType::compile_type_check*/;
+  variable[2] =  variable[3] /*e*/;
+  goto return_label921;
+  return_label921: 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, 1133, LOCATE_compiling_methods___AAsCastExpr___compile_expr};
-  val_t variable[6];
-  void **closurevariable = NULL;
+val_t compiling_methods___AAsNotnullExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1280, LOCATE_compiling_methods___AAsNotnullExpr___compile_expr};
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AAsCastExpr___n_expr(variable[4])(variable[4]) /*AAsCastExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAsNotnullExpr___n_expr(variable[0])(variable[0]) /*AAsNotnullExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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] = 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];
-  CALL_compiling_methods___MMType___compile_type_check(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*e*/, variable[5]) /*MMType::compile_type_check*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAsNotnullExpr___n_expr(variable[0])(variable[0]) /*AAsNotnullExpr::n_expr*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_syntax_base___PExpr___stype(variable[4])(variable[4]) /*PExpr::stype*/;
+  CALL_compiling_methods___MMType___compile_notnull_check(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*e*/, variable[0]) /*MMType::compile_notnull_check*/;
   variable[2] =  variable[3] /*e*/;
-  goto return_label306;
-  return_label306: while(false);
+  goto return_label922;
+  return_label922: 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, 1142, LOCATE_compiling_methods___ATrueExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1289, LOCATE_compiling_methods___ATrueExpr___compile_expr};
+  static val_t once_value_924 = NIT_NULL; /* Once value for string variable[3]*/
   val_t variable[4];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Bool(true)"), TAG_Int(15)); /*new String*/
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Once String constant */
+  if (once_value_924 != NIT_NULL) variable[3] = once_value_924;
+  else {
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Bool(true)"), TAG_Int(15)) /*new String*/;
+    once_value_924 = variable[3];
+  }
+  /* Register variable[3]: Result */
   variable[2] = variable[3];
-  goto return_label307;
-  return_label307: while(false);
+  goto return_label923;
+  return_label923: 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, 1149, LOCATE_compiling_methods___AFalseExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1296, LOCATE_compiling_methods___AFalseExpr___compile_expr};
+  static val_t once_value_926 = NIT_NULL; /* Once value for string variable[3]*/
   val_t variable[4];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Bool(false)"), TAG_Int(16)); /*new String*/
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Once String constant */
+  if (once_value_926 != NIT_NULL) variable[3] = once_value_926;
+  else {
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Bool(false)"), TAG_Int(16)) /*new String*/;
+    once_value_926 = variable[3];
+  }
+  /* Register variable[3]: Result */
   variable[2] = variable[3];
-  goto return_label308;
-  return_label308: while(false);
+  goto return_label925;
+  return_label925: 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, 1156, LOCATE_compiling_methods___AIntExpr___compile_expr};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1303, LOCATE_compiling_methods___AIntExpr___compile_expr};
+  static val_t once_value_928 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_929 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
-  variable[6] = variable[0];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[2]: Method return value and escape marker */
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_928 != NIT_NULL) variable[4] = once_value_928;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Int("), TAG_Int(9)) /*new String*/;
+    once_value_928 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AIntExpr___n_number(variable[0])(variable[0]) /*AIntExpr::n_number*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_lexer___Token___text(variable[4])(variable[4]) /*Token::text*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_929 != NIT_NULL) variable[4] = once_value_929;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_929 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
   variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label309;
-  return_label309: while(false);
+  goto return_label927;
+  return_label927: 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, 1163, LOCATE_compiling_methods___AFloatExpr___compile_expr};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1310, LOCATE_compiling_methods___AFloatExpr___compile_expr};
+  static val_t once_value_931 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_932 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
-  variable[6] = variable[0];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[2]: Method return value and escape marker */
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_931 != NIT_NULL) variable[4] = once_value_931;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float("), TAG_Int(10)) /*new String*/;
+    once_value_931 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AFloatExpr___n_float(variable[0])(variable[0]) /*AFloatExpr::n_float*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_lexer___Token___text(variable[4])(variable[4]) /*Token::text*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_932 != NIT_NULL) variable[4] = once_value_932;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_932 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
   variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label310;
-  return_label310: while(false);
+  goto return_label930;
+  return_label930: 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, 1170, LOCATE_compiling_methods___ACharExpr___compile_expr};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1317, LOCATE_compiling_methods___ACharExpr___compile_expr};
+  static val_t once_value_934 = NIT_NULL; /* Once value for string variable[4]*/
+  static val_t once_value_935 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
-  variable[6] = variable[0];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[2]: Method return value and escape marker */
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_934 != NIT_NULL) variable[4] = once_value_934;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Char("), TAG_Int(10)) /*new String*/;
+    once_value_934 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___ACharExpr___n_char(variable[0])(variable[0]) /*ACharExpr::n_char*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_lexer___Token___text(variable[4])(variable[4]) /*Token::text*/;
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_935 != NIT_NULL) variable[4] = once_value_935;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_935 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Ensure var variable[4]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  /* Register variable[3]: Result */
   variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label311;
-  return_label311: while(false);
+  goto return_label933;
+  return_label933: 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, 1177, LOCATE_compiling_methods___AStringFormExpr___compile_expr};
-  val_t variable[14];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1324, LOCATE_compiling_methods___AStringFormExpr___compile_expr};
+  static val_t once_value_937 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_938 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_939 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_940 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_941 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_942 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_943 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_944 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_945 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_946 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_947 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_948 = NIT_NULL; /* Once value for string variable[11]*/
+  static val_t once_value_949 = NIT_NULL; /* Once value for string variable[11]*/
+  static val_t once_value_950 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_951 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_952 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_953 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[12];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   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] = 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_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];
-  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];
-  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];
-  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*/;
+  /* Register variable[2]: Method return value and escape marker */
+  CALL_compiling_methods___AStringFormExpr___compute_string_info(variable[0])(variable[0]) /*AStringFormExpr::compute_string_info*/;
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_937 != NIT_NULL) variable[6] = once_value_937;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Once String constant"), TAG_Int(20)) /*new String*/;
+    once_value_937 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CFunctionContext___get_var(variable[5])(variable[5], variable[6]) /*CFunctionContext::get_var*/;
+  variable[4] = variable[5];
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_938 != NIT_NULL) variable[6] = once_value_938;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("static val_t once_value_"), TAG_Int(24)) /*new String*/;
+    once_value_938 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
   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];
-  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] = 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[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);
+  variable[6] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_939 != NIT_NULL) variable[6] = once_value_939;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" = NIT_NULL; /* Once value for string "), TAG_Int(38)) /*new String*/;
+    once_value_939 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[4] /*cvar*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_940 != NIT_NULL) variable[6] = once_value_940;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_940 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  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]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_941 != NIT_NULL) variable[6] = once_value_941;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("if (once_value_"), TAG_Int(15)) /*new String*/;
+    once_value_941 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_942 != NIT_NULL) variable[6] = once_value_942;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" != NIT_NULL) "), TAG_Int(14)) /*new String*/;
+    once_value_942 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[4] /*cvar*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_943 != NIT_NULL) variable[6] = once_value_943;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" = once_value_"), TAG_Int(14)) /*new String*/;
+    once_value_943 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_944 != NIT_NULL) variable[6] = once_value_944;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_944 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
+  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*/;
+  /* Register variable[5]: Once String constant */
+  if (once_value_945 != NIT_NULL) variable[5] = once_value_945;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("else {"), TAG_Int(6)) /*new String*/;
+    once_value_945 = variable[5];
+  }
+  /* Register variable[5]: Result */
+  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*/;
+  /* Register variable[5]: Result */
+  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*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_typing___AStringFormExpr___meth_with_native(variable[0])(variable[0]) /*AStringFormExpr::meth_with_native*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_syntax_base___PExpr___stype(variable[0])(variable[0]) /*PExpr::stype*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(2)) /*new Array[String]*/ /* Ensure var: Literal array*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_946 != NIT_NULL) variable[10] = once_value_946;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("BOX_NativeString(\""), TAG_Int(18)) /*new String*/;
+    once_value_946 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = ATTR_compiling_methods___AStringFormExpr____cstring(variable[0]) /*AStringFormExpr::_cstring*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_947 != NIT_NULL) variable[10] = once_value_947;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("\")"), TAG_Int(2)) /*new String*/;
+    once_value_947 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[11]: Once String constant */
+  if (once_value_948 != NIT_NULL) variable[11] = once_value_948;
+  else {
+    variable[11] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int("), TAG_Int(8)) /*new String*/;
+    once_value_948 = variable[11];
+  }
+  /* Register variable[11]: Result */
+  /* Ensure var variable[11]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+  /* Register variable[11]: Result */
+  variable[11] = ATTR_compiling_methods___AStringFormExpr____cstring_length(variable[0]) /*AStringFormExpr::_cstring_length*/;
+  /* Ensure var variable[11]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[11]: Once String constant */
+  if (once_value_949 != NIT_NULL) variable[11] = once_value_949;
+  else {
+    variable[11] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_949 = variable[11];
+  }
+  /* Register variable[11]: Result */
+  /* Ensure var variable[11]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___MMMethod___compile_constructor_call(variable[6])(variable[6],  variable[1] /*v*/, variable[7], variable[8]) /*MMMethod::compile_constructor_call*/;
+  variable[5] = variable[6];
+  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]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_950 != NIT_NULL) variable[7] = once_value_950;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("once_value_"), TAG_Int(11)) /*new String*/;
+    once_value_950 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[7] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_951 != NIT_NULL) variable[7] = once_value_951;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" = "), TAG_Int(3)) /*new String*/;
+    once_value_951 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[7] =  variable[4] /*cvar*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_952 != NIT_NULL) variable[7] = once_value_952;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_952 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
+  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*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_953 != NIT_NULL) variable[6] = once_value_953;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_953 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  variable[2] =  variable[4] /*cvar*/;
+  goto return_label936;
+  return_label936: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AStringFormExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1183, LOCATE_compiling_methods___AStringFormExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1342, LOCATE_compiling_methods___AStringFormExpr___string_text};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **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, 1183);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1342);
   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, 1192, LOCATE_compiling_methods___AStringFormExpr___compute_string_info};
-  val_t variable[10];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1351, LOCATE_compiling_methods___AStringFormExpr___compute_string_info};
+  val_t variable[9];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Method return value and escape marker */
+  /* Register variable[2]: Local variable */
   variable[2] =  TAG_Int(0);
-  variable[4] = variable[0];
-  variable[4] = CALL_compiling_methods___AStringFormExpr___string_text(variable[4])(variable[4]) /*AStringFormExpr::string_text*/;
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___AStringFormExpr___string_text(variable[0])(variable[0]) /*AStringFormExpr::string_text*/;
   variable[3] = variable[4];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = NEW_Buffer_string___Buffer___init() /*new Buffer*/;
   variable[4] = variable[5];
+  /* Register variable[5]: Local variable */
   variable[5] =  TAG_Int(0);
   while (true) { /*while*/
-    variable[6] = CALL_abstract_collection___Collection___length( variable[3] /*str*/)( variable[3] /*str*/) /*AbstractArray::length*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_abstract_collection___Collection___length( variable[3] /*str*/)( variable[3] /*str*/) /*AbstractArrayRead::length*/;
+    /* Register variable[6]: Result */
     variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*i*/)<UNTAG_Int(variable[6]));
     if (!UNTAG_Bool(variable[6])) break; /* while*/
-    variable[7] = CALL_abstract_collection___Map_____bra( variable[3] /*str*/)( variable[3] /*str*/,  variable[5] /*i*/) /*String::[]*/;
+    /* Register variable[6]: Local variable */
+    /* Register variable[7]: Result */
+    variable[7] = CALL_abstract_collection___MapRead_____bra( variable[3] /*str*/)( variable[3] /*str*/,  variable[5] /*i*/) /*AbstractString::[]*/;
     variable[6] = variable[7];
+    /* Register variable[7]: Result */
     variable[7] = TAG_Bool(( variable[6] /*c*/)==( TAG_Char('\\')));
     if (UNTAG_Bool(variable[7])) { /*if*/
+      /* Register variable[7]: Result */
       variable[7] = TAG_Int(UNTAG_Int( variable[5] /*i*/)+UNTAG_Int( TAG_Int(1)));
       variable[5] = variable[7] /*i=*/;
-      variable[8] = CALL_abstract_collection___Map_____bra( variable[3] /*str*/)( variable[3] /*str*/,  variable[5] /*i*/) /*String::[]*/;
+      /* Register variable[7]: Local variable */
+      /* Register variable[8]: Result */
+      variable[8] = CALL_abstract_collection___MapRead_____bra( variable[3] /*str*/)( variable[3] /*str*/,  variable[5] /*i*/) /*AbstractString::[]*/;
       variable[7] = variable[8];
+      /* Register variable[8]: Result */
       variable[8] = TAG_Bool(( variable[7] /*c2*/)!=( TAG_Char('{')));
-      variable[9] = variable[8];
-      if (UNTAG_Bool(variable[9])) { /* and */
-        variable[9] = TAG_Bool(( variable[7] /*c2*/)!=( TAG_Char('}')));
+      /* Ensure var variable[8]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[8])) { /* and */
+        /* Register variable[8]: Result */
+        variable[8] = TAG_Bool(( variable[7] /*c2*/)!=( TAG_Char('}')));
       }
-      variable[8] = variable[9];
+      /* Register variable[8]: Result */
       if (UNTAG_Bool(variable[8])) { /*if*/
-        CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  variable[6] /*c*/) /*String::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  variable[6] /*c*/) /*Buffer::add*/;
       }
       variable[6] =  variable[7] /*c2*/ /*c=*/;
     }
+    /* Register variable[7]: Result */
     variable[7] = TAG_Int(UNTAG_Int( variable[2] /*len*/)+UNTAG_Int( TAG_Int(1)));
     variable[2] = variable[7] /*len=*/;
-    CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  variable[6] /*c*/) /*String::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  variable[6] /*c*/) /*Buffer::add*/;
+    /* Register variable[7]: Result */
     variable[7] = TAG_Int(UNTAG_Int( variable[5] /*i*/)+UNTAG_Int( TAG_Int(1)));
     variable[5] = variable[7] /*i=*/;
-    continue_314: while(0);
+    continue_955: 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_label313: while(false);
+  break_955: while(0);
+  /* Register variable[6]: Result */
+  variable[6] = CALL_string___Object___to_s( variable[4] /*res*/)( variable[4] /*res*/) /*Buffer::to_s*/;
+  ATTR_compiling_methods___AStringFormExpr____cstring(variable[0]) /*AStringFormExpr::_cstring*/ = variable[6];
+  ATTR_compiling_methods___AStringFormExpr____cstring_length(variable[0]) /*AStringFormExpr::_cstring_length*/ =  variable[2] /*len*/;
+  return_label954: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___AStringExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1219, LOCATE_compiling_methods___AStringExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1378, LOCATE_compiling_methods___AStringExpr___string_text};
   val_t variable[4];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
-  variable[2] = variable[0];
-  variable[2] = CALL_parser_nodes___AStringExpr___n_string(variable[2])(variable[2]) /*AStringExpr::n_string*/;
+  /* Register variable[1]: Method return value and escape marker */
+  /* Register variable[2]: Result */
+  variable[2] = CALL_parser_nodes___AStringExpr___n_string(variable[0])(variable[0]) /*AStringExpr::n_string*/;
+  /* Register variable[2]: Result */
   variable[2] = CALL_lexer___Token___text(variable[2])(variable[2]) /*Token::text*/;
-  variable[3] = variable[0];
-  variable[3] = CALL_parser_nodes___AStringExpr___n_string(variable[3])(variable[3]) /*AStringExpr::n_string*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___AStringExpr___n_string(variable[0])(variable[0]) /*AStringExpr::n_string*/;
+  /* Register variable[3]: Result */
   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*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArrayRead::length*/;
+  /* Register variable[3]: Result */
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(2)));
-  variable[2] = CALL_string___String___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
+  /* Register variable[2]: Result */
+  variable[2] = CALL_string___AbstractString___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*AbstractString::substring*/;
   variable[1] = variable[2];
-  goto return_label315;
-  return_label315: while(false);
+  goto return_label956;
+  return_label956: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_methods___AStartStringExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1222, LOCATE_compiling_methods___AStartStringExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1381, LOCATE_compiling_methods___AStartStringExpr___string_text};
   val_t variable[4];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
-  variable[2] = variable[0];
-  variable[2] = CALL_parser_nodes___AStartStringExpr___n_string(variable[2])(variable[2]) /*AStartStringExpr::n_string*/;
+  /* Register variable[1]: Method return value and escape marker */
+  /* Register variable[2]: Result */
+  variable[2] = CALL_parser_nodes___AStartStringExpr___n_string(variable[0])(variable[0]) /*AStartStringExpr::n_string*/;
+  /* Register variable[2]: Result */
   variable[2] = CALL_lexer___Token___text(variable[2])(variable[2]) /*Token::text*/;
-  variable[3] = variable[0];
-  variable[3] = CALL_parser_nodes___AStartStringExpr___n_string(variable[3])(variable[3]) /*AStartStringExpr::n_string*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___AStartStringExpr___n_string(variable[0])(variable[0]) /*AStartStringExpr::n_string*/;
+  /* Register variable[3]: Result */
   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*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArrayRead::length*/;
+  /* Register variable[3]: Result */
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(2)));
-  variable[2] = CALL_string___String___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
+  /* Register variable[2]: Result */
+  variable[2] = CALL_string___AbstractString___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*AbstractString::substring*/;
   variable[1] = variable[2];
-  goto return_label316;
-  return_label316: while(false);
+  goto return_label957;
+  return_label957: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_methods___AMidStringExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1225, LOCATE_compiling_methods___AMidStringExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1384, LOCATE_compiling_methods___AMidStringExpr___string_text};
   val_t variable[4];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
-  variable[2] = variable[0];
-  variable[2] = CALL_parser_nodes___AMidStringExpr___n_string(variable[2])(variable[2]) /*AMidStringExpr::n_string*/;
+  /* Register variable[1]: Method return value and escape marker */
+  /* Register variable[2]: Result */
+  variable[2] = CALL_parser_nodes___AMidStringExpr___n_string(variable[0])(variable[0]) /*AMidStringExpr::n_string*/;
+  /* Register variable[2]: Result */
   variable[2] = CALL_lexer___Token___text(variable[2])(variable[2]) /*Token::text*/;
-  variable[3] = variable[0];
-  variable[3] = CALL_parser_nodes___AMidStringExpr___n_string(variable[3])(variable[3]) /*AMidStringExpr::n_string*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___AMidStringExpr___n_string(variable[0])(variable[0]) /*AMidStringExpr::n_string*/;
+  /* Register variable[3]: Result */
   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*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArrayRead::length*/;
+  /* Register variable[3]: Result */
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(2)));
-  variable[2] = CALL_string___String___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
+  /* Register variable[2]: Result */
+  variable[2] = CALL_string___AbstractString___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*AbstractString::substring*/;
   variable[1] = variable[2];
-  goto return_label317;
-  return_label317: while(false);
+  goto return_label958;
+  return_label958: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_methods___AEndStringExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1228, LOCATE_compiling_methods___AEndStringExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1387, LOCATE_compiling_methods___AEndStringExpr___string_text};
   val_t variable[4];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
-  variable[2] = variable[0];
-  variable[2] = CALL_parser_nodes___AEndStringExpr___n_string(variable[2])(variable[2]) /*AEndStringExpr::n_string*/;
+  /* Register variable[1]: Method return value and escape marker */
+  /* Register variable[2]: Result */
+  variable[2] = CALL_parser_nodes___AEndStringExpr___n_string(variable[0])(variable[0]) /*AEndStringExpr::n_string*/;
+  /* Register variable[2]: Result */
   variable[2] = CALL_lexer___Token___text(variable[2])(variable[2]) /*Token::text*/;
-  variable[3] = variable[0];
-  variable[3] = CALL_parser_nodes___AEndStringExpr___n_string(variable[3])(variable[3]) /*AEndStringExpr::n_string*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___AEndStringExpr___n_string(variable[0])(variable[0]) /*AEndStringExpr::n_string*/;
+  /* Register variable[3]: Result */
   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*/;
+  /* Register variable[3]: Result */
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArrayRead::length*/;
+  /* Register variable[3]: Result */
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(2)));
-  variable[2] = CALL_string___String___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
+  /* Register variable[2]: Result */
+  variable[2] = CALL_string___AbstractString___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*AbstractString::substring*/;
   variable[1] = variable[2];
-  goto return_label318;
-  return_label318: while(false);
+  goto return_label959;
+  return_label959: 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, 1232, LOCATE_compiling_methods___ASuperstringExpr___compile_expr};
-  val_t variable[14];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1391, LOCATE_compiling_methods___ASuperstringExpr___compile_expr};
+  static val_t once_value_961 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_962 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_963 = NIT_NULL; /* Once value for string variable[4]*/
+    static val_t once_value_965 = NIT_NULL; /* Once value for string variable[9]*/
+  val_t variable[10];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_typing___ASuperstringExpr___meth_with_capacity(variable[4])(variable[4]) /*ASuperstringExpr::meth_with_capacity*/;
-  variable[5] = variable[0];
-  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*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_typing___ASuperstringExpr___meth_with_capacity(variable[0])(variable[0]) /*ASuperstringExpr::meth_with_capacity*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_typing___ASuperstringExpr___atype(variable[0])(variable[0]) /*ASuperstringExpr::atype*/;
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_961 != NIT_NULL) variable[8] = once_value_961;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int("), TAG_Int(8)) /*new String*/;
+    once_value_961 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_parser_nodes___ASuperstringExpr___n_exprs(variable[0])(variable[0]) /*ASuperstringExpr::n_exprs*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_abstract_collection___Collection___length(variable[8])(variable[8]) /*List::length*/;
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_962 != NIT_NULL) variable[8] = once_value_962;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_962 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
   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*/;
+  /* Register variable[6]: Result */
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_963 != NIT_NULL) variable[4] = once_value_963;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Array (for super-string)"), TAG_Int(24)) /*new String*/;
+    once_value_963 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*array*/, variable[4]) /*CompilerVisitor::ensure_var*/;
+  variable[3] = variable[4] /*array=*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___ASuperstringExpr___n_exprs(variable[0])(variable[0]) /*ASuperstringExpr::n_exprs*/;
+  /* Register variable[4]: For iterator */
   variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*List::iterator*/;
   while (true) { /*for*/
+    /* Register variable[5]: For 'is_ok' result */
     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[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ListIterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[6]: Local variable */
     variable[6] = variable[5];
+    /* Register variable[7]: Local variable */
+    /* Register variable[8]: Result */
     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*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_965 != NIT_NULL) variable[9] = once_value_965;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("super-string element"), TAG_Int(20)) /*new String*/;
+      once_value_965 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Register variable[8]: Result */
+    variable[8] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*CompilerVisitor::ensure_var*/;
     variable[7] = variable[8];
+    /* Register variable[8]: Result */
     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*/;
+    /* Register variable[9]: Result */
+    variable[9] = CALL_syntax_base___PExpr___stype(variable[0])(variable[0]) /*PExpr::stype*/;
+    /* Register variable[8]: Result */
     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]*/
+      /* Register variable[8]: Result */
+      variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+      CALL_compiling_methods___CFunctionContext___free_var(variable[8])(variable[8],  variable[7] /*e*/) /*CFunctionContext::free_var*/;
+      /* Register variable[8]: Result */
+      variable[8] = CALL_typing___ASuperstringExpr___meth_to_s(variable[0])(variable[0]) /*ASuperstringExpr::meth_to_s*/;
+      variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
       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*/;
+      /* Register variable[9]: Result */
+      /* Register variable[8]: Result */
+      variable[8] = CALL_compiling_methods___MMMethod___compile_expr_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_expr_call*/;
+      variable[7] = variable[8] /*e=*/;
     }
-    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]*/
+    /* Register variable[8]: Result */
+    variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    CALL_compiling_methods___CFunctionContext___free_var(variable[8])(variable[8],  variable[7] /*e*/) /*CFunctionContext::free_var*/;
+    /* Register variable[8]: Result */
+    variable[8] = CALL_typing___ASuperstringExpr___meth_add(variable[0])(variable[0]) /*ASuperstringExpr::meth_add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(2)) /*new Array[String]*/ /* Ensure var: Literal array*/;
     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);
+    /* Register variable[9]: Result */
+    CALL_compiling_methods___MMMethod___compile_stmt_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_stmt_call*/;
+    continue_964: while(0);
     CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ListIterator::next*/;
   }
-  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]*/
+  break_964: while(0);
+  /* Register variable[4]: Result */
+  variable[4] = CALL_typing___ASuperstringExpr___meth_to_s(variable[0])(variable[0]) /*ASuperstringExpr::meth_to_s*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
   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*/;
+  /* Register variable[5]: Result */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___MMMethod___compile_expr_call(variable[4])(variable[4],  variable[1] /*v*/, variable[5]) /*MMMethod::compile_expr_call*/;
   variable[2] = variable[4];
-  goto return_label319;
-  return_label319: while(false);
+  goto return_label960;
+  return_label960: 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, 1249, LOCATE_compiling_methods___ANullExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1411, LOCATE_compiling_methods___ANullExpr___compile_expr};
+  static val_t once_value_967 = NIT_NULL; /* Once value for string variable[3]*/
   val_t variable[4];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" NIT_NULL /*null*/"), TAG_Int(18)); /*new String*/
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Once String constant */
+  if (once_value_967 != NIT_NULL) variable[3] = once_value_967;
+  else {
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" NIT_NULL /*null*/"), TAG_Int(18)) /*new String*/;
+    once_value_967 = variable[3];
+  }
+  /* Register variable[3]: Result */
   variable[2] = variable[3];
-  goto return_label321;
-  return_label321: while(false);
+  goto return_label966;
+  return_label966: 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, 1256, LOCATE_compiling_methods___AArrayExpr___compile_expr};
-  val_t variable[14];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1418, LOCATE_compiling_methods___AArrayExpr___compile_expr};
+  static val_t once_value_969 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_970 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_971 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[10];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_typing___AArrayExpr___meth_with_capacity(variable[4])(variable[4]) /*AArrayExpr::meth_with_capacity*/;
-  variable[5] = variable[0];
-  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_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___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] = 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*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_typing___AArrayExpr___meth_with_capacity(variable[0])(variable[0]) /*AArrayExpr::meth_with_capacity*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[0])(variable[0]) /*PExpr::stype*/;
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_969 != NIT_NULL) variable[8] = once_value_969;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int("), TAG_Int(8)) /*new String*/;
+    once_value_969 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_parser_nodes___AArrayExpr___n_exprs(variable[0])(variable[0]) /*AArrayExpr::n_exprs*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_abstract_collection___Collection___length(variable[8])(variable[8]) /*List::length*/;
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_970 != NIT_NULL) variable[8] = once_value_970;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_970 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
   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*/;
+  /* Register variable[6]: Result */
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[4]: Once String constant */
+  if (once_value_971 != NIT_NULL) variable[4] = once_value_971;
+  else {
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Literal array"), TAG_Int(13)) /*new String*/;
+    once_value_971 = variable[4];
+  }
+  /* Register variable[4]: Result */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*recv*/, variable[4]) /*CompilerVisitor::ensure_var*/;
+  variable[3] = variable[4] /*recv=*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AArrayExpr___n_exprs(variable[0])(variable[0]) /*AArrayExpr::n_exprs*/;
+  /* Register variable[4]: For iterator */
   variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*List::iterator*/;
   while (true) { /*for*/
+    /* Register variable[5]: For 'is_ok' result */
     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[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ListIterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[6]: Local variable */
     variable[6] = variable[5];
+    /* Register variable[7]: Local variable */
+    /* Register variable[8]: Result */
     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]*/
+    /* Register variable[8]: Result */
+    variable[8] = CALL_typing___AArrayExpr___meth_add(variable[0])(variable[0]) /*AArrayExpr::meth_add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(2)) /*new Array[String]*/ /* Ensure var: Literal array*/;
     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);
+    /* Register variable[9]: Result */
+    CALL_compiling_methods___MMMethod___compile_stmt_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_stmt_call*/;
+    continue_972: while(0);
     CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ListIterator::next*/;
   }
-  break_323: while(0);
+  break_972: while(0);
   variable[2] =  variable[3] /*recv*/;
-  goto return_label322;
-  return_label322: while(false);
+  goto return_label968;
+  return_label968: 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, 1269, LOCATE_compiling_methods___ARangeExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1432, LOCATE_compiling_methods___ARangeExpr___compile_expr};
   val_t variable[8];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___ARangeExpr___n_expr(variable[4])(variable[4]) /*ARangeExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___ARangeExpr___n_expr(variable[0])(variable[0]) /*ARangeExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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] = CALL_parser_nodes___ARangeExpr___n_expr2(variable[5])(variable[5]) /*ARangeExpr::n_expr2*/;
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___ARangeExpr___n_expr2(variable[0])(variable[0]) /*ARangeExpr::n_expr2*/;
+  /* Register variable[5]: Result */
   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] = 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]*/
+  /* Register variable[5]: Result */
+  variable[5] = CALL_typing___ARangeExpr___meth_init(variable[0])(variable[0]) /*ARangeExpr::meth_init*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_syntax_base___PExpr___stype(variable[0])(variable[0]) /*PExpr::stype*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(2)) /*new Array[String]*/ /* Ensure var: Literal array*/;
   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*/;
+  /* Register variable[7]: Result */
+  /* Register variable[5]: Result */
   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);
+  goto return_label973;
+  return_label973: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___ASuperExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1284, LOCATE_compiling_methods___ASuperExpr___compile_expr};
-  val_t variable[16];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1449, LOCATE_compiling_methods___ASuperExpr___compile_expr};
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___ASuperExpr___intern_compile_call(variable[0])(variable[0],  variable[1] /*v*/) /*ASuperExpr::intern_compile_call*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Result */
+  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])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___ASuperExpr___compile_expr, LOCATE_compiling_methods, 1452); nit_exit(1);}
+  variable[2] =  variable[3] /*e*/;
+  goto return_label974;
+  return_label974: 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, 1441, LOCATE_compiling_methods___ASuperExpr___compile_stmt};
+    static val_t once_value_976 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___ASuperExpr___intern_compile_call(variable[0])(variable[0],  variable[1] /*v*/) /*ASuperExpr::intern_compile_call*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Result */
+  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*/
+    /* Register variable[4]: Once String constant */
+    if (once_value_976 != NIT_NULL) variable[4] = once_value_976;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_976 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Register variable[4]: Result */
+    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_label975: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___ASuperExpr___intern_compile_call(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1456, LOCATE_compiling_methods___ASuperExpr___intern_compile_call};
+      static val_t once_value_982 = NIT_NULL; /* Once value for string variable[5]*/
+  val_t variable[15];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[4]: Result */
   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*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArrayRead::length*/;
+  /* Register variable[4]: Result */
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
   variable[3] = variable[4];
-  variable[4] = variable[0];
-  variable[4] = CALL_typing___ASuperExpr___init_in_superclass(variable[4])(variable[4]) /*ASuperExpr::init_in_superclass*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_typing___ASuperExpr___init_in_superclass(variable[0])(variable[0]) /*ASuperExpr::init_in_superclass*/;
+  /* Register variable[4]: Result */
   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] = CALL_typing___ASuperExpr___init_in_superclass(variable[4])(variable[4]) /*ASuperExpr::init_in_superclass*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_typing___ASuperExpr___init_in_superclass(variable[0])(variable[0]) /*ASuperExpr::init_in_superclass*/;
+    /* Register variable[4]: Result */
     variable[4] = CALL_static_type___MMLocalProperty___signature(variable[4])(variable[4]) /*MMLocalProperty::signature*/;
+    /* Register variable[4]: Result */
     variable[4] = CALL_static_type___MMSignature___arity(variable[4])(variable[4]) /*MMSignature::arity*/;
     variable[3] = variable[4] /*arity=*/;
   }
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
   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];
+  /* Register variable[5]: Result */
+  variable[5] = NEW_Array_array___Array___with_capacity(variable[5]) /*new Array[String]*/;
   variable[4] = variable[5];
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_compiling_methods___NitMethodContext___method_params(variable[6])(variable[6]) /*NitMethodContext::method_params*/;
+  /* Register variable[7]: Local variable */
   variable[7] = variable[6];
+  /* Register variable[8]: Local variable */
   variable[8] =  TAG_Int(0);
+  /* Register variable[9]: Method return value and escape marker */
+  /* Register variable[10]: Result */
   variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-  variable[11] = variable[10];
-  if (UNTAG_Bool(variable[11])) { /* and */
-    variable[11] = variable[7];
-    variable[11] = ATTR_array___AbstractArray____length(variable[11]) /*AbstractArray::_length*/;
-    variable[11] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)<UNTAG_Int(variable[11]));
+  /* Ensure var variable[10]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[10])) { /* and */
+    /* Register variable[10]: Result */
+    variable[10] = ATTR_array___AbstractArrayRead____length(variable[7]) /*AbstractArrayRead::_length*/;
+    /* Register variable[10]: Result */
+    variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)<UNTAG_Int(variable[10]));
   }
-  variable[10] = variable[11];
-  if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-  variable[10] = variable[7];
-  variable[10] = ATTR_array___Array____items(variable[10]) /*Array::_items*/;
+  /* Register variable[10]: Result */
+  if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+  /* Register variable[10]: Result */
+  variable[10] = ATTR_array___Array____items(variable[7]) /*Array::_items*/;
+  /* Register variable[10]: Result */
   variable[10] = UNBOX_NativeArray(variable[10])[UNTAG_Int( variable[8] /*index*/)];
   variable[9] = variable[10];
-  goto return_label326;
-  return_label326: while(false);
+  goto return_label978;
+  return_label978: while(false);
+  /* Register variable[6]: Result */
   variable[6] = variable[9];
+  /* Register variable[5]: Result */
   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] = CALL_parser_nodes___ASuperExpr___n_args(variable[5])(variable[5]) /*ASuperExpr::n_args*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___ASuperExpr___n_args(variable[0])(variable[0]) /*ASuperExpr::n_args*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*List::length*/;
+  /* Register variable[5]: Result */
   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]*/
+    /* Register variable[5]: Result */
+    variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0),  variable[3] /*arity*/) /*new Range[Int]*/;
+    /* Register variable[5]: For iterator */
     variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
     while (true) { /*for*/
+      /* Register variable[6]: For 'is_ok' result */
       variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
+      /* Register variable[7]: Local variable */
       variable[7] = variable[6];
+      /* Register variable[8]: Result */
       variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+      /* Register variable[9]: Result */
       variable[9] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+      /* Register variable[9]: Result */
       variable[9] = CALL_compiling_methods___NitMethodContext___method_params(variable[9])(variable[9]) /*NitMethodContext::method_params*/;
+      /* Register variable[10]: Result */
       variable[10] = TAG_Int(UNTAG_Int( variable[7] /*i*/)+UNTAG_Int( TAG_Int(1)));
+      /* Register variable[11]: Local variable */
       variable[11] = variable[9];
+      /* Register variable[12]: Local variable */
       variable[12] = variable[10];
+      /* Register variable[13]: Method return value and escape marker */
+      /* Register variable[14]: Result */
       variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-      variable[15] = variable[14];
-      if (UNTAG_Bool(variable[15])) { /* and */
-        variable[15] = variable[11];
-        variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
-        variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
+      /* Ensure var variable[14]: Left 'and' operand*/
+      if (UNTAG_Bool(variable[14])) { /* and */
+        /* Register variable[14]: Result */
+        variable[14] = ATTR_array___AbstractArrayRead____length(variable[11]) /*AbstractArrayRead::_length*/;
+        /* Register variable[14]: Result */
+        variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[14]));
       }
-      variable[14] = variable[15];
-      if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[14] = variable[11];
-      variable[14] = ATTR_array___Array____items(variable[14]) /*Array::_items*/;
+      /* Register variable[14]: Result */
+      if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+      /* Register variable[14]: Result */
+      variable[14] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
+      /* Register variable[14]: Result */
       variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
       variable[13] = variable[14];
-      goto return_label328;
-      return_label328: while(false);
+      goto return_label980;
+      return_label980: while(false);
+      /* Register variable[9]: Result */
       variable[9] = variable[13];
+      /* Register variable[8]: Result */
       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);
+      continue_979: while(0);
       CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
     }
-    break_327: while(0);
+    break_979: while(0);
   } else { /*if*/
-    variable[5] = variable[0];
-    variable[5] = CALL_parser_nodes___ASuperExpr___n_args(variable[5])(variable[5]) /*ASuperExpr::n_args*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_parser_nodes___ASuperExpr___n_args(variable[0])(variable[0]) /*ASuperExpr::n_args*/;
+    /* Register variable[5]: For iterator */
     variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*List::iterator*/;
     while (true) { /*for*/
+      /* Register variable[6]: For 'is_ok' result */
       variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ListIterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ListIterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ListIterator::item*/ /* Ensure var: For item*/;
+      /* Register variable[7]: Local variable */
       variable[7] = variable[6];
+      /* Register variable[8]: Result */
       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);
+      continue_981: while(0);
       CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ListIterator::next*/;
     }
-    break_329: while(0);
+    break_981: while(0);
   }
-  variable[5] = variable[0];
-  variable[5] = CALL_typing___ASuperExpr___init_in_superclass(variable[5])(variable[5]) /*ASuperExpr::init_in_superclass*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_typing___ASuperExpr___init_in_superclass(variable[0])(variable[0]) /*ASuperExpr::init_in_superclass*/;
+  /* Register variable[5]: Result */
   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] = 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*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_typing___ASuperExpr___init_in_superclass(variable[0])(variable[0]) /*ASuperExpr::init_in_superclass*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_compiling_methods___MMMethod___intern_compile_call(variable[5])(variable[5],  variable[1] /*v*/,  variable[4] /*args*/) /*MMMethod::intern_compile_call*/;
     variable[2] = variable[5];
-    goto return_label325;
+    goto return_label977;
   } else { /*if*/
-    variable[5] = variable[0];
-    variable[5] = CALL_typing___AAbsSendExpr___prop(variable[5])(variable[5]) /*AAbsSendExpr::prop*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_typing___AAbsSendExpr___prop(variable[0])(variable[0]) /*AAbsSendExpr::prop*/;
+    /* Register variable[5]: Result */
     variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
+    /* Register variable[5]: Result */
     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*/
+      /* Register variable[5]: Once String constant */
+      if (once_value_982 != NIT_NULL) variable[5] = once_value_982;
+      else {
+        variable[5] = NEW_String_string___String___with_native(BOX_NativeString("init_table"), TAG_Int(10)) /*new String*/;
+        once_value_982 = variable[5];
+      }
+      /* Register variable[5]: Result */
       CALL_abstract_collection___SimpleCollection___add( variable[4] /*args*/)( variable[4] /*args*/, variable[5]) /*AbstractArray::add*/;
     }
-    variable[5] = variable[0];
-    variable[5] = CALL_typing___AAbsSendExpr___prop(variable[5])(variable[5]) /*AAbsSendExpr::prop*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_typing___AAbsSendExpr___prop(variable[0])(variable[0]) /*AAbsSendExpr::prop*/;
+    /* Register variable[5]: Result */
     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_label325;
+    goto return_label977;
   }
-  return_label325: while(false);
+  return_label977: 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, 1278, LOCATE_compiling_methods___ASuperExpr___compile_stmt};
-  val_t variable[10];
-  void **closurevariable = NULL;
+val_t compiling_methods___AAttrExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1484, LOCATE_compiling_methods___AAttrExpr___compile_expr};
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_compiling_methods___PExpr___compile_expr(variable[4])(variable[4],  variable[1] /*v*/) /*ASuperExpr::compile_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[0])(variable[0]) /*AAttrFormExpr::n_expr*/;
+  /* Register variable[4]: Result */
+  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] = 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_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
-    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-    variable[6] = variable[5];
-    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
-    variable[7] =  variable[3] /*e*/;
-    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];
-    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_label330: while(false);
+  /* Register variable[4]: Result */
+  variable[4] = CALL_typing___AAttrFormExpr___prop(variable[0])(variable[0]) /*AAttrFormExpr::prop*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AAttrFormExpr___n_id(variable[0])(variable[0]) /*AAttrFormExpr::n_id*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___MMAttribute___compile_read_access(variable[4])(variable[4],  variable[1] /*v*/, variable[5],  variable[3] /*e*/) /*MMAttribute::compile_read_access*/;
+  variable[2] = variable[4];
+  goto return_label983;
+  return_label983: 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, 1492, LOCATE_compiling_methods___AAttrAssignExpr___compile_stmt};
+  val_t variable[7];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[0])(variable[0]) /*AAttrFormExpr::n_expr*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[0])(variable[0]) /*AAssignFormExpr::n_value*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = variable[5];
+  /* Register variable[5]: Result */
+  variable[5] = CALL_typing___AAttrFormExpr___prop(variable[0])(variable[0]) /*AAttrFormExpr::prop*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_parser_nodes___AAttrFormExpr___n_id(variable[0])(variable[0]) /*AAttrFormExpr::n_id*/;
+  CALL_compiling_methods___MMAttribute___compile_write_access(variable[5])(variable[5],  variable[1] /*v*/, variable[6],  variable[3] /*e*/,  variable[4] /*e2*/) /*MMAttribute::compile_write_access*/;
+  return_label984: 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, 1312, LOCATE_compiling_methods___AAttrExpr___compile_expr};
-  val_t variable[5];
-  void **closurevariable = NULL;
+void compiling_methods___AAttrReassignExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1500, LOCATE_compiling_methods___AAttrReassignExpr___compile_stmt};
+  val_t variable[9];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[0])(variable[0]) /*AAttrFormExpr::n_expr*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_typing___AAttrFormExpr___prop(variable[0])(variable[0]) /*AAttrFormExpr::prop*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_parser_nodes___AAttrFormExpr___n_id(variable[0])(variable[0]) /*AAttrFormExpr::n_id*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___MMAttribute___compile_read_access(variable[5])(variable[5],  variable[1] /*v*/, variable[6],  variable[3] /*e1*/) /*MMAttribute::compile_read_access*/;
+  variable[4] = variable[5];
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[0])(variable[0]) /*AReassignFormExpr::n_value*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
+  variable[5] = variable[6];
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
+  variable[7] = CALL_typing___AReassignFormExpr___assign_method(variable[0])(variable[0]) /*AReassignFormExpr::assign_method*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(2)) /*new Array[String]*/ /* Ensure var: Literal array*/;
+  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*/;
+  /* Register variable[8]: Result */
+  /* Register variable[7]: Result */
+  variable[7] = CALL_compiling_methods___MMMethod___compile_expr_call(variable[7])(variable[7],  variable[1] /*v*/, variable[8]) /*MMMethod::compile_expr_call*/;
+  variable[6] = variable[7];
+  /* Register variable[7]: Result */
+  variable[7] = CALL_typing___AAttrFormExpr___prop(variable[0])(variable[0]) /*AAttrFormExpr::prop*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_parser_nodes___AAttrFormExpr___n_id(variable[0])(variable[0]) /*AAttrFormExpr::n_id*/;
+  CALL_compiling_methods___MMAttribute___compile_write_access(variable[7])(variable[7],  variable[1] /*v*/, variable[8],  variable[3] /*e1*/,  variable[6] /*e4*/) /*MMAttribute::compile_write_access*/;
+  return_label985: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___AIssetAttrExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1511, LOCATE_compiling_methods___AIssetAttrExpr___compile_expr};
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[4])(variable[4]) /*AAttrFormExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[0])(variable[0]) /*AAttrFormExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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] = 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*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_typing___AAttrFormExpr___prop(variable[0])(variable[0]) /*AAttrFormExpr::prop*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_parser_nodes___AAttrFormExpr___n_id(variable[0])(variable[0]) /*AAttrFormExpr::n_id*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___MMAttribute___compile_isset(variable[4])(variable[4],  variable[1] /*v*/, variable[5],  variable[3] /*e*/) /*MMAttribute::compile_isset*/;
   variable[2] = variable[4];
-  goto return_label331;
-  return_label331: while(false);
+  goto return_label986;
+  return_label986: 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, 1320, LOCATE_compiling_methods___AAttrAssignExpr___compile_stmt};
-  val_t variable[6];
-  void **closurevariable = NULL;
+void compiling_methods___AAbsAbsSendExpr___compile_arguments_in(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 1519, LOCATE_compiling_methods___AAbsAbsSendExpr___compile_arguments_in};
+  val_t variable[8];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  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] = 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] = 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);
+  /* Register variable[2]: Local variable */
+  variable[2] =  param1;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_typing___AAbsAbsSendExpr___arguments(variable[0])(variable[0]) /*AAbsAbsSendExpr::arguments*/;
+  /* Register variable[4]: For iterator */
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArrayRead::iterator*/;
+  while (true) { /*for*/
+    /* Register variable[5]: For 'is_ok' result */
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable[5])) break; /*for*/
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[6]: Local variable */
+    variable[6] = variable[5];
+    /* Register variable[7]: Result */
+    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[2] /*cargs*/)( variable[2] /*cargs*/, variable[7]) /*AbstractArray::add*/;
+    continue_988: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
+  }
+  break_988: while(0);
+  return_label987: while(false);
   tracehead = trace.prev;
   return;
 }
-void compiling_methods___AAttrReassignExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1328, LOCATE_compiling_methods___AAttrReassignExpr___compile_stmt};
-  val_t variable[9];
-  void **closurevariable = NULL;
+val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1550, LOCATE_compiling_methods___ASendExpr___compile_expr};
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  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*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___ASendExpr___intern_compile_call(variable[0])(variable[0],  variable[1] /*v*/) /*ASendExpr::intern_compile_call*/;
   variable[3] = variable[4];
-  variable[5] = variable[0];
-  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] = 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] = 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]*/
-  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];
-  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);
+  /* Register variable[4]: Result */
+  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])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___ASendExpr___compile_expr, LOCATE_compiling_methods, 1553); nit_exit(1);}
+  variable[2] =  variable[3] /*e*/;
+  goto return_label989;
+  return_label989: 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, 1557, LOCATE_compiling_methods___ASendExpr___compile_stmt};
+    static val_t once_value_991 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___ASendExpr___intern_compile_call(variable[0])(variable[0],  variable[1] /*v*/) /*ASendExpr::intern_compile_call*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Result */
+  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*/
+    /* Register variable[4]: Once String constant */
+    if (once_value_991 != NIT_NULL) variable[4] = once_value_991;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_991 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Register variable[4]: Result */
+    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_label990: 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, 1339, LOCATE_compiling_methods___ASendExpr___compile_expr};
-  val_t variable[26];
-  void **closurevariable = NULL;
+val_t compiling_methods___ASendExpr___intern_compile_call(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1530, LOCATE_compiling_methods___ASendExpr___intern_compile_call};
+  val_t variable[8];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___ASendExpr___n_expr(variable[4])(variable[4]) /*ASendExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___ASendExpr___n_expr(variable[0])(variable[0]) /*ASendExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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]*/
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = NEW_Array_array___Array___init() /*new Array[String]*/;
   variable[4] = variable[5];
   CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/,  variable[3] /*recv*/) /*AbstractArray::add*/;
-  variable[5] = variable[0];
-  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] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
-    if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
-    variable[7] = variable[6];
-    variable[8] = 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_335: while(0);
+  CALL_compiling_methods___AAbsAbsSendExpr___compile_arguments_in(variable[0])(variable[0],  variable[1] /*v*/,  variable[4] /*cargs*/) /*AAbsAbsSendExpr::compile_arguments_in*/;
+  /* Register variable[5]: Local variable */
   /*variable[5] is variable e*/
-  variable[6] = variable[0];
-  variable[6] = CALL_typing___AAbsSendExpr___prop_signature(variable[6])(variable[6]) /*AAbsSendExpr::prop_signature*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_typing___AAbsAbsSendExpr___prop_signature(variable[0])(variable[0]) /*AAbsAbsSendExpr::prop_signature*/;
+  /* Register variable[6]: Result */
   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*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_abstract_collection___Collection___is_empty(variable[6])(variable[6]) /*AbstractArrayRead::is_empty*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
-    variable[6] = variable[0];
-    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*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_typing___AAbsSendExpr___prop(variable[0])(variable[0]) /*AAbsSendExpr::prop*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_compiling_methods___MMMethod___intern_compile_call(variable[6])(variable[6],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::intern_compile_call*/;
     variable[5] = variable[6] /*e=*/;
   } else { /*if*/
-    variable[7] = variable[0];
-    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) && ((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] = 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] = 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] = 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] = 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] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
-    while (true) { /*for*/
-      variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
-      if (!UNTAG_Bool(variable[12])) break; /*for*/
-      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*/;
-      variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-      variable[19] = variable[18];
-      if (UNTAG_Bool(variable[19])) { /* and */
-        variable[19] = variable[15];
-        variable[19] = ATTR_array___AbstractArray____length(variable[19]) /*AbstractArray::_length*/;
-        variable[19] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)<UNTAG_Int(variable[19]));
-      }
-      variable[18] = variable[19];
-      if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[18] = variable[15];
-      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_label337;
-      return_label337: while(false);
-      variable[15] = variable[17];
-      variable[16] = variable[0];
-      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];
-      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_336: while(0);
-    variable[11] = variable[0];
-    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] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
-    while (true) { /*for*/
-      variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
-      if (!UNTAG_Bool(variable[12])) break; /*for*/
-      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*/
-      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_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] = 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) && ((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*/
-      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] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
-    while (true) { /*for*/
-      variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
-      if (!UNTAG_Bool(variable[12])) break; /*for*/
-      variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/;
-      variable[13] = variable[12];
-      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];
-      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)));
-      variable[21] = variable[20];
-      if (UNTAG_Bool(variable[21])) { /* and */
-        variable[21] = variable[17];
-        variable[21] = ATTR_array___AbstractArray____length(variable[21]) /*AbstractArray::_length*/;
-        variable[21] = TAG_Bool(UNTAG_Int( variable[18] /*index*/)<UNTAG_Int(variable[21]));
-      }
-      variable[20] = variable[21];
-      if (!UNTAG_Bool(variable[20])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[20] = variable[17];
-      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_label340;
-      return_label340: while(false);
-      variable[17] = variable[19];
-      variable[18] = variable[17];
-      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];
-      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];
-      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)));
-      variable[21] = variable[20];
-      if (UNTAG_Bool(variable[21])) { /* and */
-        variable[21] = variable[17];
-        variable[21] = ATTR_array___AbstractArray____length(variable[21]) /*AbstractArray::_length*/;
-        variable[21] = TAG_Bool(UNTAG_Int( variable[18] /*index*/)<UNTAG_Int(variable[21]));
-      }
-      variable[20] = variable[21];
-      if (!UNTAG_Bool(variable[20])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-      variable[20] = variable[17];
-      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_label341;
-      return_label341: while(false);
-      variable[17] = variable[19];
-      variable[18] = variable[17];
-      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];
-      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[20]) /*AbstractArray::add*/;
-      variable[21] =  variable[9] /*ve*/;
-      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];
-      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_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];
-        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)));
-        variable[21] = variable[20];
-        if (UNTAG_Bool(variable[21])) { /* and */
-          variable[21] = variable[17];
-          variable[21] = ATTR_array___AbstractArray____length(variable[21]) /*AbstractArray::_length*/;
-          variable[21] = TAG_Bool(UNTAG_Int( variable[18] /*index*/)<UNTAG_Int(variable[21]));
-        }
-        variable[20] = variable[21];
-        if (!UNTAG_Bool(variable[20])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-        variable[20] = variable[17];
-        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_label342;
-        return_label342: while(false);
-        variable[17] = variable[19];
-        variable[18] = variable[17];
-        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];
-        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)));
-        variable[25] = variable[24];
-        if (UNTAG_Bool(variable[25])) { /* and */
-          variable[25] = variable[21];
-          variable[25] = ATTR_array___AbstractArray____length(variable[25]) /*AbstractArray::_length*/;
-          variable[25] = TAG_Bool(UNTAG_Int( variable[22] /*index*/)<UNTAG_Int(variable[25]));
-        }
-        variable[24] = variable[25];
-        if (!UNTAG_Bool(variable[24])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-        variable[24] = variable[21];
-        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_label343;
-        return_label343: while(false);
-        variable[21] = variable[23];
-        variable[22] = variable[21];
-        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];
-        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_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];
-      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];
-      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];
-      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_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];
-        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
-        variable[17] =  variable[9] /*ve*/;
-        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];
-        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)));
-        variable[24] = variable[23];
-        if (UNTAG_Bool(variable[24])) { /* and */
-          variable[24] = variable[20];
-          variable[24] = ATTR_array___AbstractArray____length(variable[24]) /*AbstractArray::_length*/;
-          variable[24] = TAG_Bool(UNTAG_Int( variable[21] /*index*/)<UNTAG_Int(variable[24]));
-        }
-        variable[23] = variable[24];
-        if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-        variable[23] = variable[20];
-        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_label344;
-        return_label344: while(false);
-        variable[20] = variable[22];
-        variable[21] = variable[20];
-        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];
-        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*/
-        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] = 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[14]) /*CompilerVisitor::add_instr*/;
-      continue_339: while(0);
-      CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
-    }
-    break_339: while(0);
+    /* Register variable[6]: Result */
+    variable[6] = CALL_typing___AAbsSendExpr___prop(variable[0])(variable[0]) /*AAbsSendExpr::prop*/;
+    /* Register variable[7]: Result */
+    variable[7] = CALL_typing___ASendExpr___closure_defs(variable[0])(variable[0]) /*ASendExpr::closure_defs*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_compiling_methods___MMMethod___compile_call_and_closures(variable[6])(variable[6],  variable[1] /*v*/,  variable[4] /*cargs*/, variable[7]) /*MMMethod::compile_call_and_closures*/;
+    variable[5] = variable[6] /*e=*/;
   }
-  variable[6] = variable[0];
-  variable[6] = CALL_typing___AAbsSendExpr___prop(variable[6])(variable[6]) /*AAbsSendExpr::prop*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_typing___AAbsSendExpr___prop(variable[0])(variable[0]) /*AAbsSendExpr::prop*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
+  /* Register variable[6]: Result */
   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] = CALL_typing___AAbsSendExpr___prop(variable[6])(variable[6]) /*AAbsSendExpr::prop*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_typing___AAbsSendExpr___prop(variable[0])(variable[0]) /*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_label334;
-  return_label334: while(false);
+  goto return_label992;
+  return_label992: 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, 1413, LOCATE_compiling_methods___ASendExpr___compile_stmt};
-  val_t variable[5];
-  void **closurevariable = NULL;
+val_t compiling_methods___ASendReassignExpr___compile_expr(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1567, LOCATE_compiling_methods___ASendReassignExpr___compile_expr};
+  val_t variable[3];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  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) && ((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] = 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_label345: while(false);
+  /* Register variable[2]: Method return value and escape marker */
+  fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___ASendReassignExpr___compile_expr, LOCATE_compiling_methods, 1567); nit_exit(1);
+  return_label993: while(false);
   tracehead = trace.prev;
-  return;
+  return variable[2];
 }
-val_t compiling_methods___ASendReassignExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1423, LOCATE_compiling_methods___ASendReassignExpr___compile_expr};
+void compiling_methods___ASendReassignExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1569, LOCATE_compiling_methods___ASendReassignExpr___compile_stmt};
   val_t variable[10];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___ASendExpr___n_expr(variable[4])(variable[4]) /*ASendExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___ASendExpr___n_expr(variable[0])(variable[0]) /*ASendExpr::n_expr*/;
+  /* Register variable[4]: Result */
   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]*/
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
+  variable[5] = NEW_Array_array___Array___init() /*new Array[String]*/;
   variable[4] = variable[5];
   CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/,  variable[3] /*recv*/) /*AbstractArray::add*/;
-  variable[5] = variable[0];
-  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] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
-    if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
-    variable[7] = variable[6];
-    variable[8] = 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_347: while(0);
-  variable[6] = variable[0];
-  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*/;
+  CALL_compiling_methods___AAbsAbsSendExpr___compile_arguments_in(variable[0])(variable[0],  variable[1] /*v*/,  variable[4] /*cargs*/) /*AAbsAbsSendExpr::compile_arguments_in*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_typing___ASendReassignExpr___read_prop(variable[0])(variable[0]) /*ASendReassignExpr::read_prop*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___MMMethod___compile_expr_call(variable[6])(variable[6],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_expr_call*/;
   variable[5] = variable[6];
-  variable[7] = variable[0];
-  variable[7] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[7])(variable[7]) /*AReassignFormExpr::n_value*/;
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
+  variable[7] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[0])(variable[0]) /*AReassignFormExpr::n_value*/;
+  /* Register variable[7]: Result */
   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] = 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]*/
+  /* Register variable[7]: Local variable */
+  /* Register variable[8]: Result */
+  variable[8] = CALL_typing___AReassignFormExpr___assign_method(variable[0])(variable[0]) /*AReassignFormExpr::assign_method*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(2)) /*new Array[String]*/ /* Ensure var: Literal array*/;
   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*/;
+  /* Register variable[9]: Result */
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___MMMethod___compile_expr_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_expr_call*/;
   variable[7] = variable[8];
   CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/,  variable[7] /*e4*/) /*AbstractArray::add*/;
-  variable[8] = variable[0];
-  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_label346;
-  return_label346: while(false);
+  /* Register variable[8]: Result */
+  variable[8] = CALL_typing___AAbsSendExpr___prop(variable[0])(variable[0]) /*AAbsSendExpr::prop*/;
+  CALL_compiling_methods___MMMethod___compile_stmt_call(variable[8])(variable[8],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_stmt_call*/;
+  return_label994: while(false);
   tracehead = trace.prev;
-  return variable[2];
+  return;
 }
 val_t compiling_methods___ANewExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1441, LOCATE_compiling_methods___ANewExpr___compile_expr};
-  val_t variable[8];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1585, LOCATE_compiling_methods___ANewExpr___compile_expr};
+  val_t variable[6];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = NEW_Array_array___Array___init(); /*new Array[String]*/
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = NEW_Array_array___Array___init() /*new Array[String]*/;
   variable[3] = variable[4];
-  variable[4] = variable[0];
-  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] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
-    if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
-    variable[6] = variable[5];
-    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_349: while(0);
-  variable[4] = variable[0];
-  variable[4] = CALL_typing___AAbsSendExpr___prop(variable[4])(variable[4]) /*AAbsSendExpr::prop*/;
-  variable[5] = variable[0];
-  variable[5] = CALL_syntax_base___PExpr___stype(variable[5])(variable[5]) /*PExpr::stype*/;
+  CALL_compiling_methods___AAbsAbsSendExpr___compile_arguments_in(variable[0])(variable[0],  variable[1] /*v*/,  variable[3] /*cargs*/) /*AAbsAbsSendExpr::compile_arguments_in*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_typing___AAbsSendExpr___prop(variable[0])(variable[0]) /*AAbsSendExpr::prop*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[0])(variable[0]) /*PExpr::stype*/;
+  /* Register variable[4]: Result */
   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_label348;
-  return_label348: while(false);
+  goto return_label995;
+  return_label995: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
+void compiling_methods___ANewExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1592, LOCATE_compiling_methods___ANewExpr___compile_stmt};
+  val_t variable[3];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___ANewExpr___compile_stmt, LOCATE_compiling_methods, 1592); nit_exit(1);
+  return_label996: while(false);
+  tracehead = trace.prev;
+  return;
+}
 val_t compiling_methods___PClosureDef___compile_closure(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1452, LOCATE_compiling_methods___PClosureDef___compile_closure};
+  struct trace_t trace = {NULL, NULL, 1596, LOCATE_compiling_methods___PClosureDef___compile_closure};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **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, 1452);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1596);
   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, 1456, LOCATE_compiling_methods___PClosureDef___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 1600, LOCATE_compiling_methods___PClosureDef___do_compile_inside};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **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, 1456);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1600);
   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, 1464, LOCATE_compiling_methods___AClosureDef___compile_closure};
-  val_t variable[26];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1608, LOCATE_compiling_methods___AClosureDef___compile_closure};
+    static val_t once_value_998 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_999 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_1000 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_1001 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1002 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1003 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1004 = NIT_NULL; /* Once value for string variable[10]*/
+    static val_t once_value_1006 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_1007 = NIT_NULL; /* Once value for string variable[14]*/
+  static val_t once_value_1008 = NIT_NULL; /* Once value for string variable[12]*/
+  static val_t once_value_1009 = NIT_NULL; /* Once value for string variable[12]*/
+  static val_t once_value_1010 = NIT_NULL; /* Once value for string variable[13]*/
+  static val_t once_value_1011 = NIT_NULL; /* Once value for string variable[13]*/
+  static val_t once_value_1012 = NIT_NULL; /* Once value for string variable[13]*/
+  static val_t once_value_1013 = NIT_NULL; /* Once value for string variable[12]*/
+  static val_t once_value_1014 = NIT_NULL; /* Once value for string variable[13]*/
+  static val_t once_value_1015 = NIT_NULL; /* Once value for string variable[13]*/
+  static val_t once_value_1016 = NIT_NULL; /* Once value for string variable[14]*/
+  static val_t once_value_1017 = NIT_NULL; /* Once value for string variable[14]*/
+  static val_t once_value_1018 = NIT_NULL; /* Once value for string variable[13]*/
+    static val_t once_value_1019 = NIT_NULL; /* Once value for string variable[13]*/
+    static val_t once_value_1020 = NIT_NULL; /* Once value for string variable[14]*/
+    static val_t once_value_1021 = NIT_NULL; /* Once value for string variable[14]*/
+  static val_t once_value_1022 = NIT_NULL; /* Once value for string variable[13]*/
+  static val_t once_value_1023 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1024 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1025 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1026 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1027 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1028 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1029 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1030 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1031 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_1032 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_1033 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_1034 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_1035 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_1036 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_1037 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_1038 = NIT_NULL; /* Once value for string variable[15]*/
+    static val_t once_value_1039 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1040 = NIT_NULL; /* Once value for string variable[15]*/
+  static val_t once_value_1041 = NIT_NULL; /* Once value for string variable[15]*/
+  val_t variable[16];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
   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*/
+  /* Register variable[5]: Result */
+  variable[5] = NEW_CContext_compiling_base___CContext___init() /*new CContext*/;
   CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::ctx=*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___CompilerVisitor___out_contexts( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
+  /* Register variable[6]: Result */
   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*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
   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*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___CFunctionContext___closure(variable[6])(variable[6]) /*CFunctionContext::closure*/;
   variable[5] = variable[6];
+  /* Register variable[6]: Result */
   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=*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___CFunctionContext___closure__eq(variable[6])(variable[6], variable[7]) /*CFunctionContext::closure=*/;
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___NitMethodContext___return_value(variable[7])(variable[7]) /*NitMethodContext::return_value*/;
   variable[6] = variable[7];
+  /* Register variable[7]: Local variable */
+  /* Register variable[8]: Result */
   variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
   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*/
+  /* Register variable[8]: Result */
+  variable[8] = TAG_Bool(( variable[5] /*cfc_old*/ ==  NIT_NULL /*null*/) || (( variable[5] /*cfc_old*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*cfc_old*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*cfc_old*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*cfc_old*/)( variable[5] /*cfc_old*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[8])) { /*if*/
+    /* Register variable[8]: Result */
     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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-    variable[12] =  variable[6] /*old_rv*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_998 != NIT_NULL) variable[10] = once_value_998;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString("closctx->"), TAG_Int(9)) /*new String*/;
+      once_value_998 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    variable[10] =  variable[6] /*old_rv*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_999 != NIT_NULL) variable[10] = once_value_999;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_999 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[9]: Result */
     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=*/;
+    /* Register variable[8]: Result */
     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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-    variable[12] =  variable[7] /*old_bv*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_1000 != NIT_NULL) variable[10] = once_value_1000;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString("closctx->"), TAG_Int(9)) /*new String*/;
+      once_value_1000 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    variable[10] =  variable[7] /*old_bv*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[10]: Once String constant */
+    if (once_value_1001 != NIT_NULL) variable[10] = once_value_1001;
+    else {
+      variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_1001 = variable[10];
+    }
+    /* Register variable[10]: Result */
+    /* Ensure var variable[10]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    /* Register variable[9]: Result */
     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_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];
-  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];
-  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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
+  /* Register variable[8]: Local variable */
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1002 != NIT_NULL) variable[10] = once_value_1002;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("OC_"), TAG_Int(3)) /*new String*/;
+    once_value_1002 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___NitMethodContext___method(variable[10])(variable[10]) /*NitMethodContext::method*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_base___MMLocalProperty___cname(variable[10])(variable[10]) /*MMLocalProperty::cname*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1003 != NIT_NULL) variable[10] = once_value_1003;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
+    once_value_1003 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___CompilerVisitor___out_contexts( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_abstract_collection___Collection___length(variable[10])(variable[10]) /*AbstractArrayRead::length*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1004 != NIT_NULL) variable[10] = once_value_1004;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1004 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
   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]*/
+  ATTR_compiling_methods___AClosureDef____cname(variable[0]) /*AClosureDef::_cname*/ =  variable[8] /*cname*/;
+  /* Register variable[9]: Local variable */
+  /* Register variable[10]: Result */
+  variable[10] = NEW_Array_array___Array___init() /*new Array[String]*/;
   variable[9] = variable[10];
-  variable[10] = variable[0];
-  variable[10] = CALL_syntax_base___PClosureDef___closure(variable[10])(variable[10]) /*PClosureDef::closure*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_syntax_base___PClosureDef___closure(variable[0])(variable[0]) /*PClosureDef::closure*/;
+  /* Register variable[10]: Result */
   variable[10] = CALL_static_type___MMClosure___signature(variable[10])(variable[10]) /*MMClosure::signature*/;
+  /* Register variable[10]: Result */
   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];
+  /* Register variable[10]: Result */
+  variable[10] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[10]) /*new Range[Int]*/;
+  /* Register variable[10]: For iterator */
   variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*Range::iterator*/;
   while (true) { /*for*/
+    /* Register variable[11]: For 'is_ok' result */
     variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[11])) break; /*for*/
-    variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/;
+    variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[12]: Local variable */
     variable[12] = variable[11];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
-    variable[16] =  variable[12] /*i*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_1006 != NIT_NULL) variable[14] = once_value_1006;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" param"), TAG_Int(6)) /*new String*/;
+      once_value_1006 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    variable[14] =  variable[12] /*i*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/) /*AbstractArray::add*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_1007 != NIT_NULL) variable[14] = once_value_1007;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_1007 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[13]: Result */
     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);
+    continue_1005: while(0);
     CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
   }
-  break_351: while(0);
-  variable[11] = variable[0];
-  variable[11] = CALL_compiling_methods___AClosureDef___decl_csignature(variable[11])(variable[11],  variable[1] /*v*/,  variable[9] /*args*/,  variable[2] /*closcn*/) /*AClosureDef::decl_csignature*/;
+  break_1005: while(0);
+  /* Register variable[10]: Local variable */
+  /* Register variable[11]: Result */
+  variable[11] = CALL_compiling_methods___AClosureDef___decl_csignature(variable[0])(variable[0],  variable[1] /*v*/,  variable[9] /*args*/,  variable[2] /*closcn*/) /*AClosureDef::decl_csignature*/;
   variable[10] = variable[11];
-  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] =  variable[10] /*cs*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[16]) /*AbstractArray::add*/;
+  variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[12]: Once String constant */
+  if (once_value_1008 != NIT_NULL) variable[12] = once_value_1008;
+  else {
+    variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1008 = variable[12];
+  }
+  /* Register variable[12]: Result */
+  /* Ensure var variable[12]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/;
+  variable[12] =  variable[10] /*cs*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/;
+  /* Register variable[12]: Once String constant */
+  if (once_value_1009 != NIT_NULL) variable[12] = once_value_1009;
+  else {
+    variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)) /*new String*/;
+    once_value_1009 = variable[12];
+  }
+  /* Register variable[12]: Result */
+  /* Ensure var variable[12]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/;
+  /* Register variable[11]: Result */
   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*/;
+  /* Register variable[11]: Local variable */
+  /* Register variable[12]: Result */
   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*/
+  /* Register variable[12]: Result */
+  variable[12] = NEW_CContext_compiling_base___CContext___init() /*new CContext*/;
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
-  variable[15] = variable[0];
-  variable[15] = CALL_parser_prod___PNode___line_number(variable[15])(variable[15]) /*Prod::line_number*/;
-  variable[16] = variable[15];
-  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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[22]) /*AbstractArray::add*/;
+  variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[13]: Once String constant */
+  if (once_value_1010 != NIT_NULL) variable[13] = once_value_1010;
+  else {
+    variable[13] = NEW_String_string___String___with_native(BOX_NativeString("struct trace_t trace = {NULL, NULL, "), TAG_Int(36)) /*new String*/;
+    once_value_1010 = variable[13];
+  }
+  /* Register variable[13]: Result */
+  /* Ensure var variable[13]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
+  /* Register variable[13]: Result */
+  variable[13] = CALL_parser_prod___PNode___line_number(variable[0])(variable[0]) /*Prod::line_number*/;
+  /* Ensure var variable[13]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[13]: Once String constant */
+  if (once_value_1011 != NIT_NULL) variable[13] = once_value_1011;
+  else {
+    variable[13] = NEW_String_string___String___with_native(BOX_NativeString(", LOCATE_"), TAG_Int(9)) /*new String*/;
+    once_value_1011 = variable[13];
+  }
+  /* Register variable[13]: Result */
+  /* Ensure var variable[13]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
+  /* Register variable[13]: Result */
+  variable[13] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[13]: Result */
+  variable[13] = CALL_compiling_methods___NitMethodContext___method(variable[13])(variable[13]) /*NitMethodContext::method*/;
+  /* Register variable[13]: Result */
+  variable[13] = CALL_compiling_base___MMLocalProperty___cname(variable[13])(variable[13]) /*MMLocalProperty::cname*/;
+  /* Ensure var variable[13]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
+  /* Register variable[13]: Once String constant */
+  if (once_value_1012 != NIT_NULL) variable[13] = once_value_1012;
+  else {
+    variable[13] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)) /*new String*/;
+    once_value_1012 = variable[13];
+  }
+  /* Register variable[13]: Result */
+  /* Ensure var variable[13]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
+  /* Register variable[12]: Result */
   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*/
+  /* Register variable[12]: Once String constant */
+  if (once_value_1013 != NIT_NULL) variable[12] = once_value_1013;
+  else {
+    variable[12] = NEW_String_string___String___with_native(BOX_NativeString("trace.prev = tracehead; tracehead = &trace;"), TAG_Int(43)) /*new String*/;
+    once_value_1013 = variable[12];
+  }
+  /* Register variable[12]: Result */
   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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[18]) /*AbstractArray::add*/;
+  variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[13]: Once String constant */
+  if (once_value_1014 != NIT_NULL) variable[13] = once_value_1014;
+  else {
+    variable[13] = NEW_String_string___String___with_native(BOX_NativeString("trace.file = LOCATE_"), TAG_Int(20)) /*new String*/;
+    once_value_1014 = variable[13];
+  }
+  /* Register variable[13]: Result */
+  /* Ensure var variable[13]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
+  /* Register variable[13]: Result */
+  variable[13] = CALL_compiling_base___CompilerVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::module*/;
+  /* Register variable[13]: Result */
+  variable[13] = CALL_abstractmetamodel___MMModule___name(variable[13])(variable[13]) /*MMModule::name*/;
+  /* Ensure var variable[13]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[13]: Once String constant */
+  if (once_value_1015 != NIT_NULL) variable[13] = once_value_1015;
+  else {
+    variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_1015 = variable[13];
+  }
+  /* Register variable[13]: Result */
+  /* Ensure var variable[13]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
+  /* Register variable[12]: Result */
   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] = CALL_compiling_methods___PClosureDef___do_compile_inside(variable[13])(variable[13],  variable[1] /*v*/,  variable[9] /*args*/) /*AClosureDef::do_compile_inside*/;
+  /* Register variable[12]: Local variable */
+  /* Register variable[13]: Result */
+  variable[13] = CALL_compiling_methods___PClosureDef___do_compile_inside(variable[0])(variable[0],  variable[1] /*v*/,  variable[9] /*args*/) /*AClosureDef::do_compile_inside*/;
   variable[12] = variable[13];
-  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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[19]) /*AbstractArray::add*/;
+  variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[14]: Once String constant */
+  if (once_value_1016 != NIT_NULL) variable[14] = once_value_1016;
+  else {
+    variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1016 = variable[14];
+  }
+  /* Register variable[14]: Result */
+  /* Ensure var variable[14]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+  /* Register variable[14]: Result */
+  variable[14] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[14]: Result */
+  variable[14] = CALL_compiling_methods___NitMethodContext___return_label(variable[14])(variable[14]) /*NitMethodContext::return_label*/;
+  /* Ensure var variable[14]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+  /* Register variable[14]: Once String constant */
+  if (once_value_1017 != NIT_NULL) variable[14] = once_value_1017;
+  else {
+    variable[14] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)) /*new String*/;
+    once_value_1017 = variable[14];
+  }
+  /* Register variable[14]: Result */
+  /* Ensure var variable[14]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+  /* Register variable[13]: Result */
   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*/
+  /* Register variable[13]: Once String constant */
+  if (once_value_1018 != NIT_NULL) variable[13] = once_value_1018;
+  else {
+    variable[13] = NEW_String_string___String___with_native(BOX_NativeString("tracehead = trace.prev;"), TAG_Int(23)) /*new String*/;
+    once_value_1018 = variable[13];
+  }
+  /* Register variable[13]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
+  /* Register variable[13]: Result */
   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*/
+    /* Register variable[13]: Once String constant */
+    if (once_value_1019 != NIT_NULL) variable[13] = once_value_1019;
+    else {
+      variable[13] = NEW_String_string___String___with_native(BOX_NativeString("return;"), TAG_Int(7)) /*new String*/;
+      once_value_1019 = variable[13];
+    }
+    /* Register variable[13]: Result */
     CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
   } else { /*if*/
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
-    variable[16] =  variable[12] /*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(1)); /*new String*/
-    variable[18] = variable[17];
-    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_1020 != NIT_NULL) variable[14] = once_value_1020;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString("return "), TAG_Int(7)) /*new String*/;
+      once_value_1020 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    variable[14] =  variable[12] /*s*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[14]: Once String constant */
+    if (once_value_1021 != NIT_NULL) variable[14] = once_value_1021;
+    else {
+      variable[14] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_1021 = variable[14];
+    }
+    /* Register variable[14]: Result */
+    /* Ensure var variable[14]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    /* Register variable[13]: Result */
     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*/;
   }
+  /* Register variable[13]: Result */
   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*/
+  /* Register variable[13]: Once String constant */
+  if (once_value_1022 != NIT_NULL) variable[13] = once_value_1022;
+  else {
+    variable[13] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_1022 = variable[13];
+  }
+  /* Register variable[13]: Result */
   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=*/;
+  /* Register variable[13]: Result */
   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=*/;
+  CALL_compiling_methods___CFunctionContext___closure__eq(variable[13])(variable[13],  variable[5] /*cfc_old*/) /*CFunctionContext::closure=*/;
+  /* Register variable[13]: Result */
   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=*/;
+  /* Register variable[13]: Result */
   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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[20]) /*AbstractArray::add*/;
+  /* Register variable[13]: Local variable */
+  variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1023 != NIT_NULL) variable[15] = once_value_1023;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString("wbclos"), TAG_Int(6)) /*new String*/;
+    once_value_1023 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[15]: Result */
+  variable[15] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1024 != NIT_NULL) variable[15] = once_value_1024;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1024 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[14]: Result */
   variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
   variable[13] = variable[14];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
-  variable[17] =  variable[2] /*closcn*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
-  variable[20] =  variable[13] /*closcnv*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[22]) /*AbstractArray::add*/;
-  variable[23] =  variable[8] /*cname*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[25]) /*AbstractArray::add*/;
+  variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1025 != NIT_NULL) variable[15] = once_value_1025;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString("struct WBT_ "), TAG_Int(12)) /*new String*/;
+    once_value_1025 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  variable[15] =  variable[13] /*closcnv*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1026 != NIT_NULL) variable[15] = once_value_1026;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_1026 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[14]: Result */
   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_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];
-    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
-    variable[17] =  variable[13] /*closcnv*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+  variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1027 != NIT_NULL) variable[15] = once_value_1027;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1027 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  variable[15] =  variable[13] /*closcnv*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1028 != NIT_NULL) variable[15] = once_value_1028;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString(".fun = (fun_t)"), TAG_Int(14)) /*new String*/;
+    once_value_1028 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  variable[15] =  variable[8] /*cname*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1029 != NIT_NULL) variable[15] = once_value_1029;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_1029 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[14]: Result */
+  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]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1030 != NIT_NULL) variable[15] = once_value_1030;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1030 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  variable[15] =  variable[13] /*closcnv*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1031 != NIT_NULL) variable[15] = once_value_1031;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString(".has_broke = NULL;"), TAG_Int(18)) /*new String*/;
+    once_value_1031 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[14]: Result */
+  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*/;
+  /* Register variable[14]: Result */
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*cfc_old*/ ==  NIT_NULL /*null*/) || (( variable[5] /*cfc_old*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*cfc_old*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*cfc_old*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*cfc_old*/)( variable[5] /*cfc_old*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable[14])) { /*if*/
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_1032 != NIT_NULL) variable[15] = once_value_1032;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_1032 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    variable[15] =  variable[13] /*closcnv*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_1033 != NIT_NULL) variable[15] = once_value_1033;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(".variable = closctx->variable;"), TAG_Int(30)) /*new String*/;
+      once_value_1033 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[14]: Result */
     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];
-    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
-    variable[17] =  variable[13] /*closcnv*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_1034 != NIT_NULL) variable[15] = once_value_1034;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_1034 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    variable[15] =  variable[13] /*closcnv*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_1035 != NIT_NULL) variable[15] = once_value_1035;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(".closurevariable = closctx->closurevariable;"), TAG_Int(44)) /*new String*/;
+      once_value_1035 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[14]: Result */
     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_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];
-    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
-    variable[17] =  variable[13] /*closcnv*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_1036 != NIT_NULL) variable[15] = once_value_1036;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_1036 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    variable[15] =  variable[13] /*closcnv*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_1037 != NIT_NULL) variable[15] = once_value_1037;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(".variable = variable;"), TAG_Int(21)) /*new String*/;
+      once_value_1037 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[14]: Result */
     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];
-    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
-    variable[17] =  variable[13] /*closcnv*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_1038 != NIT_NULL) variable[15] = once_value_1038;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_1038 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    variable[15] =  variable[13] /*closcnv*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[15]: Once String constant */
+    if (once_value_1039 != NIT_NULL) variable[15] = once_value_1039;
+    else {
+      variable[15] = NEW_String_string___String___with_native(BOX_NativeString(".closurevariable = closurevariable;"), TAG_Int(35)) /*new String*/;
+      once_value_1039 = variable[15];
+    }
+    /* Register variable[15]: Result */
+    /* Ensure var variable[15]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    /* Register variable[14]: Result */
     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(2)); /*new String*/
-  variable[16] = variable[15];
-  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
-  variable[17] =  variable[13] /*closcnv*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+  variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1040 != NIT_NULL) variable[15] = once_value_1040;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString("(&"), TAG_Int(2)) /*new String*/;
+    once_value_1040 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  variable[15] =  variable[13] /*closcnv*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[15]: Once String constant */
+  if (once_value_1041 != NIT_NULL) variable[15] = once_value_1041;
+  else {
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_1041 = variable[15];
+  }
+  /* Register variable[15]: Result */
+  /* Ensure var variable[15]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+  /* Register variable[14]: Result */
   variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
   variable[3] = variable[14];
-  goto return_label350;
-  return_label350: while(false);
+  goto return_label997;
+  return_label997: 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, 1554, LOCATE_compiling_methods___AClosureDef___do_compile_inside};
-  val_t variable[15];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1699, LOCATE_compiling_methods___AClosureDef___do_compile_inside};
+  static val_t once_value_1046 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1047 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1048 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1049 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_1050 = NIT_NULL; /* Once value for string variable[8]*/
+  val_t variable[14];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
-  variable[4] = variable[0];
-  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];
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_syntax_base___PClosureDef___variables(variable[0])(variable[0]) /*PClosureDef::variables*/;
+  /* Register variable[4]: Result */
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArrayRead::length*/;
+  /* Register variable[4]: Result */
+  variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]) /*new Range[Int]*/;
+  /* Register variable[4]: For iterator */
   variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
+    /* Register variable[5]: For 'is_ok' result */
     variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[6]: Local variable */
     variable[6] = variable[5];
+    /* Register variable[7]: Local variable */
+    /* Register variable[8]: Result */
     variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-    variable[9] = variable[0];
-    variable[9] = CALL_syntax_base___PClosureDef___variables(variable[9])(variable[9]) /*PClosureDef::variables*/;
+    /* Register variable[9]: Result */
+    variable[9] = CALL_syntax_base___PClosureDef___variables(variable[0])(variable[0]) /*PClosureDef::variables*/;
+    /* Register variable[10]: Local variable */
     variable[10] = variable[9];
+    /* Register variable[11]: Local variable */
     variable[11] =  variable[6] /*i*/;
+    /* Register variable[12]: Method return value and escape marker */
+    /* Register variable[13]: Result */
     variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[14] = variable[13];
-    if (UNTAG_Bool(variable[14])) { /* and */
-      variable[14] = variable[10];
-      variable[14] = ATTR_array___AbstractArray____length(variable[14]) /*AbstractArray::_length*/;
-      variable[14] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[14]));
+    /* Ensure var variable[13]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[13])) { /* and */
+      /* Register variable[13]: Result */
+      variable[13] = ATTR_array___AbstractArrayRead____length(variable[10]) /*AbstractArrayRead::_length*/;
+      /* Register variable[13]: Result */
+      variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[13]));
     }
-    variable[13] = variable[14];
-    if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[13] = variable[10];
-    variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
+    /* Register variable[13]: Result */
+    if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[13]: Result */
+    variable[13] = ATTR_array___Array____items(variable[10]) /*Array::_items*/;
+    /* Register variable[13]: Result */
     variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
     variable[12] = variable[13];
-    goto return_label354;
-    return_label354: while(false);
+    goto return_label1044;
+    return_label1044: while(false);
+    /* Register variable[9]: Result */
     variable[9] = variable[12];
+    /* Register variable[8]: Result */
     variable[8] = CALL_compiling_methods___CFunctionContext___register_variable(variable[8])(variable[8], variable[9]) /*CFunctionContext::register_variable*/;
     variable[7] = variable[8];
+    /* Register variable[8]: Local variable */
     variable[8] =  variable[2] /*params*/;
+    /* Register variable[9]: Local variable */
     variable[9] =  variable[6] /*i*/;
+    /* Register variable[10]: Method return value and escape marker */
+    /* Register variable[11]: Result */
     variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
-    variable[12] = variable[11];
-    if (UNTAG_Bool(variable[12])) { /* and */
-      variable[12] = variable[8];
-      variable[12] = ATTR_array___AbstractArray____length(variable[12]) /*AbstractArray::_length*/;
-      variable[12] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)<UNTAG_Int(variable[12]));
+    /* Ensure var variable[11]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[11])) { /* and */
+      /* Register variable[11]: Result */
+      variable[11] = ATTR_array___AbstractArrayRead____length(variable[8]) /*AbstractArrayRead::_length*/;
+      /* Register variable[11]: Result */
+      variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)<UNTAG_Int(variable[11]));
     }
-    variable[11] = variable[12];
-    if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[11] = variable[8];
-    variable[11] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
+    /* Register variable[11]: Result */
+    if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[11]: Result */
+    variable[11] = ATTR_array___Array____items(variable[8]) /*Array::_items*/;
+    /* Register variable[11]: Result */
     variable[11] = UNBOX_NativeArray(variable[11])[UNTAG_Int( variable[9] /*index*/)];
     variable[10] = variable[11];
-    goto return_label355;
-    return_label355: while(false);
+    goto return_label1045;
+    return_label1045: while(false);
+    /* Register variable[8]: Result */
     variable[8] = variable[10];
     CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[7] /*vacname*/, variable[8]) /*CompilerVisitor::add_assignment*/;
-    continue_353: while(0);
+    continue_1043: while(0);
     CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
-  break_353: while(0);
+  break_1043: while(0);
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___NitMethodContext___continue_value(variable[5])(variable[5]) /*NitMethodContext::continue_value*/;
   variable[4] = variable[5];
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
   variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_compiling_methods___NitMethodContext___continue_label(variable[6])(variable[6]) /*NitMethodContext::continue_label*/;
   variable[5] = variable[6];
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___NitMethodContext___break_label(variable[7])(variable[7]) /*NitMethodContext::break_label*/;
   variable[6] = variable[7];
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
   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*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1046 != NIT_NULL) variable[9] = once_value_1046;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Continue value and escape marker"), TAG_Int(32)) /*new String*/;
+    once_value_1046 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CFunctionContext___get_var(variable[8])(variable[8], variable[9]) /*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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  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]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1047 != NIT_NULL) variable[9] = once_value_1047;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("continue_label"), TAG_Int(14)) /*new String*/;
+    once_value_1047 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1048 != NIT_NULL) variable[9] = once_value_1048;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1048 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   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=*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
   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] = 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] = 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_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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_parser_nodes___AClosureDef___n_expr(variable[0])(variable[0]) /*AClosureDef::n_expr*/;
+  CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[7]) /*CompilerVisitor::compile_stmt*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_1049 != NIT_NULL) variable[8] = once_value_1049;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1049 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___NitMethodContext___continue_label(variable[8])(variable[8]) /*NitMethodContext::continue_label*/;
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_1050 != NIT_NULL) variable[8] = once_value_1050;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(": while(false);"), TAG_Int(15)) /*new String*/;
+    once_value_1050 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
   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*/;
+  /* Register variable[7]: Local variable */
   variable[7] =  NIT_NULL /*null*/;
-  variable[8] = variable[0];
-  variable[8] = CALL_syntax_base___PClosureDef___closure(variable[8])(variable[8]) /*PClosureDef::closure*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_syntax_base___PClosureDef___closure(variable[0])(variable[0]) /*PClosureDef::closure*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_static_type___MMClosure___signature(variable[8])(variable[8]) /*MMClosure::signature*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_static_type___MMSignature___return_type(variable[8])(variable[8]) /*MMSignature::return_type*/;
+  /* Register variable[8]: Result */
   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*/
+    /* Register variable[8]: Result */
     variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[8]: Result */
     variable[8] = CALL_compiling_methods___NitMethodContext___continue_value(variable[8])(variable[8]) /*NitMethodContext::continue_value*/;
     variable[7] = variable[8] /*ret=*/;
   }
+  /* Register variable[8]: Result */
   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=*/;
+  /* Register variable[8]: Result */
   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=*/;
+  /* Register variable[8]: Result */
   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_label352;
-  return_label352: while(false);
+  goto return_label1042;
+  return_label1042: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 val_t compiling_methods___AClosureDef___cname(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1461, LOCATE_compiling_methods___AClosureDef___cname};
+  struct trace_t trace = {NULL, NULL, 1605, LOCATE_compiling_methods___AClosureDef___cname};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   tracehead = trace.prev;
   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, 1532, LOCATE_compiling_methods___AClosureDef___decl_csignature};
-  val_t variable[22];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1678, LOCATE_compiling_methods___AClosureDef___decl_csignature};
+  static val_t once_value_1052 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_1054 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_1056 = NIT_NULL; /* Once value for string variable[11]*/
+    static val_t once_value_1057 = NIT_NULL; /* Once value for string variable[7]*/
+    static val_t once_value_1058 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_1059 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_1060 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1061 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1062 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1063 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1064 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1065 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1066 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1067 = NIT_NULL; /* Once value for string variable[10]*/
+  static val_t once_value_1068 = NIT_NULL; /* Once value for string variable[9]*/
+  val_t variable[15];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
+  /* Register variable[3]: Local variable */
   variable[3] =  param2;
-  variable[6] = NEW_Array_array___Array___init(); /*new Array[String]*/
+  /* Register variable[4]: Method return value and escape marker */
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = NEW_Array_array___Array___init() /*new Array[String]*/;
   variable[5] = variable[6];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
-  variable[9] =  variable[3] /*closcn*/;
-  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];
-  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*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1052 != NIT_NULL) variable[6] = once_value_1052;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("struct WBT_ *closctx"), TAG_Int(20)) /*new String*/;
+    once_value_1052 = variable[6];
+  }
+  /* Register variable[6]: Result */
   CALL_abstract_collection___SimpleCollection___add( variable[5] /*params*/)( variable[5] /*params*/, variable[6]) /*AbstractArray::add*/;
-  variable[6] = variable[0];
-  variable[6] = CALL_syntax_base___PClosureDef___closure(variable[6])(variable[6]) /*PClosureDef::closure*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_syntax_base___PClosureDef___closure(variable[0])(variable[0]) /*PClosureDef::closure*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_static_type___MMClosure___signature(variable[6])(variable[6]) /*MMClosure::signature*/;
+  /* Register variable[6]: Result */
   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];
+  /* Register variable[6]: Result */
+  variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]) /*new Range[Int]*/;
+  /* Register variable[6]: For iterator */
   variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
   while (true) { /*for*/
+    /* Register variable[7]: For 'is_ok' result */
     variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
+    /* Register variable[8]: Local variable */
     variable[8] = variable[7];
-    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];
-    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)));
-    variable[17] = variable[16];
-    if (UNTAG_Bool(variable[17])) { /* and */
-      variable[17] = variable[13];
-      variable[17] = ATTR_array___AbstractArray____length(variable[17]) /*AbstractArray::_length*/;
-      variable[17] = TAG_Bool(UNTAG_Int( variable[14] /*index*/)<UNTAG_Int(variable[17]));
+    /* Register variable[9]: Local variable */
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[11]: Once String constant */
+    if (once_value_1054 != NIT_NULL) variable[11] = once_value_1054;
+    else {
+      variable[11] = NEW_String_string___String___with_native(BOX_NativeString("val_t "), TAG_Int(6)) /*new String*/;
+      once_value_1054 = variable[11];
     }
-    variable[16] = variable[17];
-    if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 229); nit_exit(1);}
-    variable[16] = variable[13];
-    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_label358;
-    return_label358: while(false);
-    variable[13] = variable[15];
-    variable[14] = variable[13];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
+    /* Register variable[11]: Result */
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Local variable */
+    variable[11] =  variable[2] /*args*/;
+    /* Register variable[12]: Local variable */
+    variable[12] =  variable[8] /*i*/;
+    /* Register variable[13]: Method return value and escape marker */
+    /* Register variable[14]: Result */
+    variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
+    /* Ensure var variable[14]: Left 'and' operand*/
+    if (UNTAG_Bool(variable[14])) { /* and */
+      /* Register variable[14]: Result */
+      variable[14] = ATTR_array___AbstractArrayRead____length(variable[11]) /*AbstractArrayRead::_length*/;
+      /* Register variable[14]: Result */
+      variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[14]));
+    }
+    /* Register variable[14]: Result */
+    if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_methods, 234); nit_exit(1);}
+    /* Register variable[14]: Result */
+    variable[14] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
+    /* Register variable[14]: Result */
+    variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
+    variable[13] = variable[14];
+    goto return_label1055;
+    return_label1055: while(false);
+    /* Register variable[11]: Result */
+    variable[11] = variable[13];
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[11]: Once String constant */
+    if (once_value_1056 != NIT_NULL) variable[11] = once_value_1056;
+    else {
+      variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_1056 = variable[11];
+    }
+    /* Register variable[11]: Result */
+    /* Ensure var variable[11]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    /* Register variable[10]: Result */
     variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
     variable[9] = variable[10];
     CALL_abstract_collection___SimpleCollection___add( variable[5] /*params*/)( variable[5] /*params*/,  variable[9] /*p*/) /*AbstractArray::add*/;
-    continue_357: while(0);
+    continue_1053: while(0);
     CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
-  break_357: while(0);
+  break_1053: while(0);
+  /* Register variable[6]: Local variable */
   /*variable[6] is variable ret*/
-  variable[7] = variable[0];
-  variable[7] = CALL_syntax_base___PClosureDef___closure(variable[7])(variable[7]) /*PClosureDef::closure*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_syntax_base___PClosureDef___closure(variable[0])(variable[0]) /*PClosureDef::closure*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_static_type___MMClosure___signature(variable[7])(variable[7]) /*MMClosure::signature*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_static_type___MMSignature___return_type(variable[7])(variable[7]) /*MMSignature::return_type*/;
+  /* Register variable[7]: Result */
   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*/
+    /* Register variable[7]: Once String constant */
+    if (once_value_1057 != NIT_NULL) variable[7] = once_value_1057;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)) /*new String*/;
+      once_value_1057 = variable[7];
+    }
+    /* Register variable[7]: Result */
     variable[6] = variable[7] /*ret=*/;
   } else { /*if*/
-    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("void"), TAG_Int(4)); /*new String*/
+    /* Register variable[7]: Once String constant */
+    if (once_value_1058 != NIT_NULL) variable[7] = once_value_1058;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("void"), TAG_Int(4)) /*new String*/;
+      once_value_1058 = variable[7];
+    }
+    /* Register variable[7]: Result */
     variable[6] = variable[7] /*ret=*/;
   }
-  variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
+  /* Register variable[7]: Local variable */
+  /* Register variable[8]: Once String constant */
+  if (once_value_1059 != NIT_NULL) variable[8] = once_value_1059;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_1059 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Register variable[8]: Result */
   variable[8] = CALL_string___Collection___join( variable[5] /*params*/)( variable[5] /*params*/, variable[8]) /*Collection::join*/;
   variable[7] = variable[8];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-  variable[12] =  variable[6] /*ret*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
-  variable[15] = variable[0];
-  variable[15] = CALL_compiling_methods___AClosureDef___cname(variable[15])(variable[15]) /*AClosureDef::cname*/;
-  variable[16] = variable[15];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
-  variable[19] =  variable[7] /*p*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
+  /* Register variable[8]: Local variable */
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1060 != NIT_NULL) variable[10] = once_value_1060;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1060 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[6] /*ret*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1061 != NIT_NULL) variable[10] = once_value_1061;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)) /*new String*/;
+    once_value_1061 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___AClosureDef___cname(variable[0])(variable[0]) /*AClosureDef::cname*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1062 != NIT_NULL) variable[10] = once_value_1062;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
+    once_value_1062 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[7] /*p*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1063 != NIT_NULL) variable[10] = once_value_1063;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
+    once_value_1063 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
   variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
   variable[8] = variable[9];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-  variable[12] =  variable[3] /*closcn*/;
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
-  variable[12] =  variable[6] /*ret*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
-  variable[15] = variable[0];
-  variable[15] = CALL_compiling_methods___AClosureDef___cname(variable[15])(variable[15]) /*AClosureDef::cname*/;
-  variable[16] = variable[15];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
-  variable[19] =  variable[7] /*p*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1064 != NIT_NULL) variable[10] = once_value_1064;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("typedef "), TAG_Int(8)) /*new String*/;
+    once_value_1064 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[6] /*ret*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1065 != NIT_NULL) variable[10] = once_value_1065;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" (* "), TAG_Int(4)) /*new String*/;
+    once_value_1065 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Result */
+  variable[10] = CALL_compiling_methods___AClosureDef___cname(variable[0])(variable[0]) /*AClosureDef::cname*/;
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1066 != NIT_NULL) variable[10] = once_value_1066;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_t)("), TAG_Int(4)) /*new String*/;
+    once_value_1066 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  variable[10] =  variable[7] /*p*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[10]: Once String constant */
+  if (once_value_1067 != NIT_NULL) variable[10] = once_value_1067;
+  else {
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)) /*new String*/;
+    once_value_1067 = variable[10];
+  }
+  /* Register variable[10]: Result */
+  /* Ensure var variable[10]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
   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*/
+  /* Register variable[9]: Once String constant */
+  if (once_value_1068 != NIT_NULL) variable[9] = once_value_1068;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_1068 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Register variable[9]: Result */
   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_label356;
-  return_label356: while(false);
+  goto return_label1051;
+  return_label1051: 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, 1585, LOCATE_compiling_methods___PClosureDecl___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 1730, LOCATE_compiling_methods___PClosureDecl___do_compile_inside};
   val_t *variable = NULL;
-  void **closurevariable = NULL;
+  struct WBT_ **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, 1585);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1730);
   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, 1588, LOCATE_compiling_methods___AClosureDecl___do_compile_inside};
-  val_t variable[15];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1733, LOCATE_compiling_methods___AClosureDecl___do_compile_inside};
+  static val_t once_value_1070 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1071 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1072 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1073 = NIT_NULL; /* Once value for string variable[8]*/
+  static val_t once_value_1074 = NIT_NULL; /* Once value for string variable[8]*/
+  val_t variable[10];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Local variable */
   variable[2] =  param1;
-  variable[4] = variable[0];
-  variable[4] = CALL_parser_nodes___AClosureDecl___n_signature(variable[4])(variable[4]) /*AClosureDecl::n_signature*/;
+  /* Register variable[3]: Method return value and escape marker */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_parser_nodes___AClosureDecl___n_signature(variable[0])(variable[0]) /*AClosureDecl::n_signature*/;
+  /* Register variable[4]: Result */
   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] = CALL_parser_nodes___AClosureDecl___n_signature(variable[4])(variable[4]) /*AClosureDecl::n_signature*/;
-    variable[5] = variable[0];
-    variable[5] = CALL_syntax_base___PClosureDecl___variable(variable[5])(variable[5]) /*AClosureDecl::variable*/;
+    /* Register variable[4]: Result */
+    variable[4] = CALL_parser_nodes___AClosureDecl___n_signature(variable[0])(variable[0]) /*AClosureDecl::n_signature*/;
+    /* Register variable[5]: Result */
+    variable[5] = CALL_syntax_base___PClosureDecl___variable(variable[0])(variable[0]) /*AClosureDecl::variable*/;
+    /* Register variable[5]: Result */
     variable[5] = CALL_syntax_base___ClosureVariable___closure(variable[5])(variable[5]) /*ClosureVariable::closure*/;
+    /* Register variable[5]: Result */
     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*/;
   }
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_compiling_methods___NitMethodContext___continue_value(variable[5])(variable[5]) /*NitMethodContext::continue_value*/;
   variable[4] = variable[5];
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
   variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_compiling_methods___NitMethodContext___continue_label(variable[6])(variable[6]) /*NitMethodContext::continue_label*/;
   variable[5] = variable[6];
+  /* Register variable[6]: Local variable */
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___NitMethodContext___break_label(variable[7])(variable[7]) /*NitMethodContext::break_label*/;
   variable[6] = variable[7];
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
   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*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1070 != NIT_NULL) variable[9] = once_value_1070;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Continue value and escape marker"), TAG_Int(32)) /*new String*/;
+    once_value_1070 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CFunctionContext___get_var(variable[8])(variable[8], variable[9]) /*CFunctionContext::get_var*/;
   CALL_compiling_methods___NitMethodContext___continue_value__eq(variable[7])(variable[7], variable[8]) /*NitMethodContext::continue_value=*/;
+  /* Register variable[7]: Result */
   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];
-  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] = 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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1071 != NIT_NULL) variable[9] = once_value_1071;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("continue_label"), TAG_Int(14)) /*new String*/;
+    once_value_1071 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1072 != NIT_NULL) variable[9] = once_value_1072;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1072 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   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=*/;
+  /* Register variable[7]: Result */
   variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
   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] = 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] = 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_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];
-  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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_parser_nodes___AClosureDecl___n_expr(variable[0])(variable[0]) /*AClosureDecl::n_expr*/;
+  CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[7]) /*CompilerVisitor::compile_stmt*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_1073 != NIT_NULL) variable[8] = once_value_1073;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+    once_value_1073 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___NitMethodContext___continue_label(variable[8])(variable[8]) /*NitMethodContext::continue_label*/;
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[8]: Once String constant */
+  if (once_value_1074 != NIT_NULL) variable[8] = once_value_1074;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString(": while(false);"), TAG_Int(15)) /*new String*/;
+    once_value_1074 = variable[8];
+  }
+  /* Register variable[8]: Result */
+  /* Ensure var variable[8]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
   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*/;
+  /* Register variable[7]: Local variable */
   variable[7] =  NIT_NULL /*null*/;
-  variable[8] = variable[0];
-  variable[8] = CALL_syntax_base___PClosureDecl___variable(variable[8])(variable[8]) /*AClosureDecl::variable*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_syntax_base___PClosureDecl___variable(variable[0])(variable[0]) /*AClosureDecl::variable*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_syntax_base___ClosureVariable___closure(variable[8])(variable[8]) /*ClosureVariable::closure*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_static_type___MMClosure___signature(variable[8])(variable[8]) /*MMClosure::signature*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_static_type___MMSignature___return_type(variable[8])(variable[8]) /*MMSignature::return_type*/;
+  /* Register variable[8]: Result */
   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*/
+    /* Register variable[8]: Result */
     variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    /* Register variable[8]: Result */
     variable[8] = CALL_compiling_methods___NitMethodContext___continue_value(variable[8])(variable[8]) /*NitMethodContext::continue_value*/;
     variable[7] = variable[8] /*ret=*/;
   }
+  /* Register variable[8]: Result */
   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=*/;
+  /* Register variable[8]: Result */
   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=*/;
+  /* Register variable[8]: Result */
   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_label359;
-  return_label359: while(false);
+  goto return_label1069;
+  return_label1069: 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, 1616, LOCATE_compiling_methods___AClosureCallExpr___compile_expr};
-  val_t variable[22];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1806, LOCATE_compiling_methods___AClosureCallExpr___compile_expr};
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[4] = NEW_Array_array___Array___init(); /*new Array[String]*/
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___AClosureCallExpr___intern_compile_call(variable[0])(variable[0],  variable[1] /*v*/) /*AClosureCallExpr::intern_compile_call*/;
   variable[3] = variable[4];
-  variable[4] = variable[0];
-  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] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
-    if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
-    variable[6] = variable[5];
-    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*/;
+  /* Register variable[4]: Result */
+  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])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___AClosureCallExpr___compile_expr, LOCATE_compiling_methods, 1809); nit_exit(1);}
+  variable[2] =  variable[3] /*e*/;
+  goto return_label1075;
+  return_label1075: while(false);
+  tracehead = trace.prev;
+  return variable[2];
+}
+void compiling_methods___AClosureCallExpr___compile_stmt(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1813, LOCATE_compiling_methods___AClosureCallExpr___compile_stmt};
+    static val_t once_value_1077 = NIT_NULL; /* Once value for string variable[4]*/
+  val_t variable[5];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = CALL_compiling_methods___AClosureCallExpr___intern_compile_call(variable[0])(variable[0],  variable[1] /*v*/) /*AClosureCallExpr::intern_compile_call*/;
+  variable[3] = variable[4];
+  /* Register variable[4]: Result */
+  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*/
+    /* Register variable[4]: Once String constant */
+    if (once_value_1077 != NIT_NULL) variable[4] = once_value_1077;
+    else {
+      variable[4] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_1077 = variable[4];
+    }
+    /* Register variable[4]: Result */
+    /* Register variable[4]: Result */
+    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*/;
   }
-  break_361: while(0);
+  return_label1076: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_methods___AClosureCallExpr___intern_compile_call(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 1761, LOCATE_compiling_methods___AClosureCallExpr___intern_compile_call};
+    static val_t once_value_1079 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_1080 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_1081 = NIT_NULL; /* Once value for string variable[6]*/
+    static val_t once_value_1082 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_1083 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1084 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1085 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1086 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1087 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1088 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_1089 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_1090 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1091 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1092 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_1093 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_1094 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_1095 = NIT_NULL; /* Once value for string variable[9]*/
+    static val_t once_value_1096 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1097 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1098 = NIT_NULL; /* Once value for string variable[9]*/
+  static val_t once_value_1099 = NIT_NULL; /* Once value for string variable[8]*/
+    static val_t once_value_1100 = NIT_NULL; /* Once value for string variable[8]*/
+  val_t variable[10];
+  struct WBT_ **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
+  variable[0] =  self;
+  /* Register variable[1]: Local variable */
+  variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
+  variable[4] = NEW_Array_array___Array___init() /*new Array[String]*/;
+  variable[3] = variable[4];
+  CALL_compiling_methods___AAbsAbsSendExpr___compile_arguments_in(variable[0])(variable[0],  variable[1] /*v*/,  variable[3] /*cargs*/) /*AAbsAbsSendExpr::compile_arguments_in*/;
+  /* Register variable[4]: Local variable */
   variable[4] =  NIT_NULL /*null*/;
-  variable[5] = variable[0];
-  variable[5] = CALL_syntax_base___AClosureCallExpr___variable(variable[5])(variable[5]) /*AClosureCallExpr::variable*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___AClosureCallExpr___variable(variable[0])(variable[0]) /*AClosureCallExpr::variable*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_syntax_base___ClosureVariable___closure(variable[5])(variable[5]) /*ClosureVariable::closure*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_static_type___MMClosure___signature(variable[5])(variable[5]) /*MMClosure::signature*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_static_type___MMSignature___return_type(variable[5])(variable[5]) /*MMSignature::return_type*/;
+  /* Register variable[5]: Result */
   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*/
+    /* Register variable[5]: Result */
     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*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_1079 != NIT_NULL) variable[6] = once_value_1079;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Closure call result value"), TAG_Int(25)) /*new String*/;
+      once_value_1079 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Register variable[5]: Result */
+    variable[5] = CALL_compiling_methods___CFunctionContext___get_var(variable[5])(variable[5], variable[6]) /*CFunctionContext::get_var*/;
     variable[4] = variable[5] /*va=*/;
   }
-  variable[5] = variable[0];
-  variable[5] = CALL_syntax_base___AClosureCallExpr___variable(variable[5])(variable[5]) /*AClosureCallExpr::variable*/;
+  /* Register variable[5]: Result */
+  variable[5] = CALL_syntax_base___AClosureCallExpr___variable(variable[0])(variable[0]) /*AClosureCallExpr::variable*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_syntax_base___ClosureVariable___closure(variable[5])(variable[5]) /*ClosureVariable::closure*/;
+  /* Register variable[5]: Result */
   variable[5] = CALL_static_type___MMClosure___is_optional(variable[5])(variable[5]) /*MMClosure::is_optional*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
-    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];
-    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] = 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];
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_1080 != NIT_NULL) variable[6] = once_value_1080;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("if("), TAG_Int(3)) /*new String*/;
+      once_value_1080 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    /* Register variable[7]: Result */
+    variable[7] = CALL_syntax_base___AClosureCallExpr___variable(variable[0])(variable[0]) /*AClosureCallExpr::variable*/;
+    /* Register variable[6]: Result */
+    variable[6] = CALL_compiling_methods___CFunctionContext___varname(variable[6])(variable[6], variable[7]) /*CFunctionContext::varname*/;
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[6]: Once String constant */
+    if (once_value_1081 != NIT_NULL) variable[6] = once_value_1081;
+    else {
+      variable[6] = NEW_String_string___String___with_native(BOX_NativeString("==NULL) {"), TAG_Int(9)) /*new String*/;
+      once_value_1081 = variable[6];
+    }
+    /* Register variable[6]: Result */
+    /* Ensure var variable[6]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    /* Register variable[5]: Result */
     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] = CALL_syntax_base___AClosureCallExpr___variable(variable[6])(variable[6]) /*AClosureCallExpr::variable*/;
+    /* Register variable[5]: Local variable */
+    /* Register variable[6]: Result */
+    variable[6] = CALL_syntax_base___AClosureCallExpr___variable(variable[0])(variable[0]) /*AClosureCallExpr::variable*/;
+    /* Register variable[6]: Result */
     variable[6] = CALL_syntax_base___Variable___decl(variable[6])(variable[6]) /*Variable::decl*/;
     variable[5] = variable[6];
+    /* Register variable[6]: Result */
     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, 1627); nit_exit(1);}
+    if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___AClosureCallExpr___intern_compile_call, LOCATE_compiling_methods, 1772); nit_exit(1);}
+    /* Register variable[6]: Local variable */
+    /* Register variable[7]: Result */
     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];
+    /* Register variable[7]: Result */
     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*/
       CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[4] /*va*/,  variable[6] /*s*/) /*CompilerVisitor::add_assignment*/;
     }
     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*/
+    /* Register variable[7]: Once String constant */
+    if (once_value_1082 != NIT_NULL) variable[7] = once_value_1082;
+    else {
+      variable[7] = NEW_String_string___String___with_native(BOX_NativeString("} else {"), TAG_Int(8)) /*new String*/;
+      once_value_1082 = variable[7];
+    }
+    /* Register variable[7]: Result */
     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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
-  variable[9] = variable[0];
-  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];
-  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];
-  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] = 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];
-  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];
-  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*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  /* Register variable[7]: Result */
+  variable[7] = CALL_syntax_base___AClosureCallExpr___variable(variable[0])(variable[0]) /*AClosureCallExpr::variable*/;
+  /* Register variable[6]: Result */
+  variable[6] = CALL_compiling_methods___CFunctionContext___varname(variable[6])(variable[6], variable[7]) /*CFunctionContext::varname*/;
   variable[5] = variable[6];
-  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  /* Register variable[6]: Local variable */
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
   CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[5] /*ivar*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Result */
   variable[6] = variable[7];
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-  variable[11] =  variable[5] /*ivar*/;
-  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];
-  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] = CALL_string___Collection___join( variable[6] /*cargs2*/)( variable[6] /*cargs2*/, variable[14]) /*Collection::join*/;
-  variable[15] = variable[14];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
-  variable[18] = variable[0];
-  variable[18] = CALL_syntax_base___AClosureCallExpr___variable(variable[18])(variable[18]) /*AClosureCallExpr::variable*/;
-  variable[19] = variable[18];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[21]) /*AbstractArray::add*/;
+  /* Register variable[7]: Local variable */
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1083 != NIT_NULL) variable[9] = once_value_1083;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)) /*new String*/;
+    once_value_1083 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_syntax_base___AClosureCallExpr___variable(variable[0])(variable[0]) /*AClosureCallExpr::variable*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_methods___ClosureVariable___ctypename(variable[9])(variable[9]) /*ClosureVariable::ctypename*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1084 != NIT_NULL) variable[9] = once_value_1084;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")("), TAG_Int(2)) /*new String*/;
+    once_value_1084 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  variable[9] =  variable[5] /*ivar*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1085 != NIT_NULL) variable[9] = once_value_1085;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("->fun))("), TAG_Int(8)) /*new String*/;
+    once_value_1085 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1086 != NIT_NULL) variable[9] = once_value_1086;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
+    once_value_1086 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Register variable[9]: Result */
+  variable[9] = CALL_string___Collection___join( variable[6] /*cargs2*/)( variable[6] /*cargs2*/, variable[9]) /*Collection::join*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1087 != NIT_NULL) variable[9] = once_value_1087;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(") /* Invoke closure "), TAG_Int(20)) /*new String*/;
+    once_value_1087 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_syntax_base___AClosureCallExpr___variable(variable[0])(variable[0]) /*AClosureCallExpr::variable*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1088 != NIT_NULL) variable[9] = once_value_1088;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)) /*new String*/;
+    once_value_1088 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
   variable[7] = variable[8];
+  /* Register variable[8]: Result */
   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*/
     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_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
-    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-    variable[10] = variable[9];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-    variable[11] =  variable[7] /*s*/;
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
-    variable[12] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
-    variable[13] = variable[12];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_1089 != NIT_NULL) variable[9] = once_value_1089;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
+      once_value_1089 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    variable[9] =  variable[7] /*s*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_1090 != NIT_NULL) variable[9] = once_value_1090;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+      once_value_1090 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[8]: Result */
     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_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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-  variable[11] =  variable[5] /*ivar*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1091 != NIT_NULL) variable[9] = once_value_1091;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)) /*new String*/;
+    once_value_1091 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  variable[9] =  variable[5] /*ivar*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1092 != NIT_NULL) variable[9] = once_value_1092;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke) {"), TAG_Int(14)) /*new String*/;
+    once_value_1092 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   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] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable[8])(variable[8]) /*ASendExpr::n_closure_defs*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(variable[0])(variable[0]) /*AClosureCallExpr::n_closure_defs*/;
+  /* Register variable[8]: Result */
   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] = 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)));
+  /* Ensure var variable[8]: Left 'and' operand*/
+  if (UNTAG_Bool(variable[8])) { /* and */
+    /* Register variable[8]: Result */
+    variable[8] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(variable[0])(variable[0]) /*AClosureCallExpr::n_closure_defs*/;
+    /* Register variable[8]: Result */
+    variable[8] = CALL_abstract_collection___Collection___length(variable[8])(variable[8]) /*List::length*/;
+    /* Register variable[8]: Result */
+    variable[8] = TAG_Bool((variable[8])==( TAG_Int(1)));
   }
-  variable[8] = variable[9];
+  /* Register variable[8]: Result */
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = variable[0];
-    variable[8] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable[8])(variable[8]) /*ASendExpr::n_closure_defs*/;
+    /* Register variable[8]: Result */
+    variable[8] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(variable[0])(variable[0]) /*AClosureCallExpr::n_closure_defs*/;
+    /* Register variable[8]: Result */
     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*/;
   }
+  /* Register variable[8]: Result */
   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*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_compiling_methods___CFunctionContext___closure(variable[8])(variable[8]) /*CFunctionContext::closure*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[8]: Result */
+  variable[8] = 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] = 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];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
-    variable[11] =  variable[5] /*ivar*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
-    variable[14] =  variable[5] /*ivar*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
-    variable[17] =  variable[5] /*ivar*/;
-    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];
-    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[19]) /*AbstractArray::add*/;
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_1093 != NIT_NULL) variable[9] = once_value_1093;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)) /*new String*/;
+      once_value_1093 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    variable[9] =  variable[5] /*ivar*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_1094 != NIT_NULL) variable[9] = once_value_1094;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke) { closctx->has_broke = "), TAG_Int(36)) /*new String*/;
+      once_value_1094 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    variable[9] =  variable[5] /*ivar*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_1095 != NIT_NULL) variable[9] = once_value_1095;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke; closctx->broke_value = "), TAG_Int(36)) /*new String*/;
+      once_value_1095 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    variable[9] =  variable[5] /*ivar*/ /* Ensure var: super-string element*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[9]: Once String constant */
+    if (once_value_1096 != NIT_NULL) variable[9] = once_value_1096;
+    else {
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("->broke_value;}"), TAG_Int(15)) /*new String*/;
+      once_value_1096 = variable[9];
+    }
+    /* Register variable[9]: Result */
+    /* Ensure var variable[9]: super-string element*/
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    /* Register variable[8]: Result */
     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_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];
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
-  variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
-  variable[14] = variable[13];
-  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1097 != NIT_NULL) variable[9] = once_value_1097;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)) /*new String*/;
+    once_value_1097 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  /* Register variable[9]: Result */
+  variable[9] = CALL_compiling_methods___NitMethodContext___return_label(variable[9])(variable[9]) /*NitMethodContext::return_label*/;
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[9]: Once String constant */
+  if (once_value_1098 != NIT_NULL) variable[9] = once_value_1098;
+  else {
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_1098 = variable[9];
+  }
+  /* Register variable[9]: Result */
+  /* Ensure var variable[9]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  /* Register variable[8]: Result */
   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*/
+  /* Register variable[8]: Once String constant */
+  if (once_value_1099 != NIT_NULL) variable[8] = once_value_1099;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_1099 = variable[8];
+  }
+  /* Register variable[8]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
-  variable[8] = variable[0];
-  variable[8] = CALL_syntax_base___AClosureCallExpr___variable(variable[8])(variable[8]) /*AClosureCallExpr::variable*/;
+  /* Register variable[8]: Result */
+  variable[8] = CALL_syntax_base___AClosureCallExpr___variable(variable[0])(variable[0]) /*AClosureCallExpr::variable*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_syntax_base___ClosureVariable___closure(variable[8])(variable[8]) /*ClosureVariable::closure*/;
+  /* Register variable[8]: Result */
   variable[8] = CALL_static_type___MMClosure___is_optional(variable[8])(variable[8]) /*MMClosure::is_optional*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
     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*/
+    /* Register variable[8]: Once String constant */
+    if (once_value_1100 != NIT_NULL) variable[8] = once_value_1100;
+    else {
+      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+      once_value_1100 = variable[8];
+    }
+    /* Register variable[8]: Result */
     CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
   }
   variable[2] =  variable[4] /*va*/;
-  goto return_label360;
-  return_label360: while(false);
+  goto return_label1078;
+  return_label1078: 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, 1663, LOCATE_compiling_methods___AProxyExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1823, LOCATE_compiling_methods___AProxyExpr___compile_expr};
   val_t variable[4];
-  void **closurevariable = NULL;
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
-  variable[3] = variable[0];
-  variable[3] = CALL_parser_nodes___AProxyExpr___n_expr(variable[3])(variable[3]) /*AProxyExpr::n_expr*/;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Result */
+  variable[3] = CALL_parser_nodes___AProxyExpr___n_expr(variable[0])(variable[0]) /*AProxyExpr::n_expr*/;
+  /* Register variable[3]: Result */
   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_label362;
-  return_label362: while(false);
+  goto return_label1101;
+  return_label1101: 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, 1670, LOCATE_compiling_methods___AOnceExpr___compile_expr};
-  val_t variable[17];
-  void **closurevariable = NULL;
+  struct trace_t trace = {NULL, NULL, 1830, LOCATE_compiling_methods___AOnceExpr___compile_expr};
+  static val_t once_value_1103 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_1104 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_1105 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_1106 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_1107 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_1108 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_1109 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_1110 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_1111 = NIT_NULL; /* Once value for string variable[6]*/
+  static val_t once_value_1112 = NIT_NULL; /* Once value for string variable[5]*/
+  static val_t once_value_1113 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_1114 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_1115 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_1116 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_1117 = NIT_NULL; /* Once value for string variable[7]*/
+  static val_t once_value_1118 = NIT_NULL; /* Once value for string variable[6]*/
+  val_t variable[8];
+  struct WBT_ **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
+  /* Register variable[0]: Local variable */
   variable[0] =  self;
+  /* Register variable[1]: Local variable */
   variable[1] =  param0;
+  /* Register variable[2]: Method return value and escape marker */
+  /* Register variable[3]: Local variable */
+  /* Register variable[4]: Result */
   variable[4] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
   variable[3] = variable[4];
+  /* Register variable[4]: Local variable */
+  /* Register variable[5]: Result */
   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*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1103 != NIT_NULL) variable[6] = once_value_1103;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Once expression result"), TAG_Int(22)) /*new String*/;
+    once_value_1103 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Register variable[5]: Result */
+  variable[5] = CALL_compiling_methods___CFunctionContext___get_var(variable[5])(variable[5], variable[6]) /*CFunctionContext::get_var*/;
   variable[4] = variable[5];
-  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
-  variable[6] = NEW_String_string___String___with_native(BOX_NativeString("static val_t once_value_"), TAG_Int(24)); /*new String*/
-  variable[7] = variable[6];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[8] =  variable[3] /*i*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
-  variable[11] =  variable[3] /*i*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
-  variable[14] =  variable[4] /*cvar*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1104 != NIT_NULL) variable[6] = once_value_1104;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("static val_t once_value_"), TAG_Int(24)) /*new String*/;
+    once_value_1104 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1105 != NIT_NULL) variable[6] = once_value_1105;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("; static int once_bool_"), TAG_Int(23)) /*new String*/;
+    once_value_1105 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1106 != NIT_NULL) variable[6] = once_value_1106;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("; /* Once value for "), TAG_Int(20)) /*new String*/;
+    once_value_1106 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[4] /*cvar*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1107 != NIT_NULL) variable[6] = once_value_1107;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)) /*new String*/;
+    once_value_1107 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[8] =  variable[3] /*i*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
-  variable[11] =  variable[4] /*cvar*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
-  variable[14] =  variable[3] /*i*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1108 != NIT_NULL) variable[6] = once_value_1108;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("if (once_bool_"), TAG_Int(14)) /*new String*/;
+    once_value_1108 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1109 != NIT_NULL) variable[6] = once_value_1109;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(") "), TAG_Int(2)) /*new String*/;
+    once_value_1109 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[4] /*cvar*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1110 != NIT_NULL) variable[6] = once_value_1110;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" = once_value_"), TAG_Int(14)) /*new String*/;
+    once_value_1110 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[6]: Once String constant */
+  if (once_value_1111 != NIT_NULL) variable[6] = once_value_1111;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_1111 = variable[6];
+  }
+  /* Register variable[6]: Result */
+  /* Ensure var variable[6]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  /* Register variable[5]: Result */
   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*/
+  /* Register variable[5]: Once String constant */
+  if (once_value_1112 != NIT_NULL) variable[5] = once_value_1112;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("else {"), TAG_Int(6)) /*new String*/;
+    once_value_1112 = variable[5];
+  }
+  /* Register variable[5]: Result */
   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*/;
+  /* Register variable[5]: Result */
   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] = CALL_parser_nodes___AProxyExpr___n_expr(variable[6])(variable[6]) /*AProxyExpr::n_expr*/;
+  /* Register variable[5]: Local variable */
+  /* Register variable[6]: Result */
+  variable[6] = CALL_parser_nodes___AProxyExpr___n_expr(variable[0])(variable[0]) /*AProxyExpr::n_expr*/;
+  /* Register variable[6]: Result */
   variable[6] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
   variable[5] = variable[6];
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
-  variable[9] =  variable[3] /*i*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
-  variable[12] =  variable[4] /*cvar*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_1113 != NIT_NULL) variable[7] = once_value_1113;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("once_value_"), TAG_Int(11)) /*new String*/;
+    once_value_1113 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[7] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_1114 != NIT_NULL) variable[7] = once_value_1114;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" = "), TAG_Int(3)) /*new String*/;
+    once_value_1114 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[7] =  variable[4] /*cvar*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_1115 != NIT_NULL) variable[7] = once_value_1115;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
+    once_value_1115 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
   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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
-  variable[9] =  variable[3] /*i*/;
-  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];
-  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_1116 != NIT_NULL) variable[7] = once_value_1116;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("once_bool_"), TAG_Int(10)) /*new String*/;
+    once_value_1116 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[7] =  variable[3] /*i*/ /* Ensure var: super-string element*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
+  /* Register variable[7]: Once String constant */
+  if (once_value_1117 != NIT_NULL) variable[7] = once_value_1117;
+  else {
+    variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" = true;"), TAG_Int(8)) /*new String*/;
+    once_value_1117 = variable[7];
+  }
+  /* Register variable[7]: Result */
+  /* Ensure var variable[7]: super-string element*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  /* Register variable[6]: Result */
   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*/
+  /* Register variable[6]: Once String constant */
+  if (once_value_1118 != NIT_NULL) variable[6] = once_value_1118;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
+    once_value_1118 = variable[6];
+  }
+  /* Register variable[6]: Result */
   CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
   variable[2] =  variable[4] /*cvar*/;
-  goto return_label363;
-  return_label363: while(false);
+  goto return_label1102;
+  return_label1102: while(false);
   tracehead = trace.prev;
   return variable[2];
 }