use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / compiling___compiling_global._sep.c
diff --git a/c_src/compiling___compiling_global._sep.c b/c_src/compiling___compiling_global._sep.c
deleted file mode 100644 (file)
index a611688..0000000
+++ /dev/null
@@ -1,5086 +0,0 @@
-/* This C file is generated by NIT to compile module compiling___compiling_global. */
-#include "compiling___compiling_global._sep.h"
-static const char LOCATE_compiling___compiling_global___Program___compile_tables_to_c[] = "compiling_global::Program::compile_tables_to_c";
-void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  static val_t once_value_6; /* Once value */
-  static val_t once_value_7; /* Once value */
-        static val_t once_value_8; /* Once value */
-        static val_t once_value_9; /* Once value */
-        static val_t once_value_10; /* Once value */
-  static val_t once_value_12; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 24;
-  fra.me.meth = LOCATE_compiling___compiling_global___Program___compile_tables_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:27 */
-  fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 27);
-  }
-  fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___Program___compile_tables_to_c_1));
-  CALL_program___Program___with_each_live_local_classes(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___Program___compile_tables_to_c_2));
-  /* compiling/compiling_global.nit:36 */
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString("classtable_t TAG2VFT[4] = {NULL");
-    REGB0 = TAG_Int(31);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  fra.me.REG[2] = NEW_Buffer_standard___string___Buffer___from(fra.me.REG[2]);
-  /* compiling/compiling_global.nit:37 */
-  REGB0 = TAG_Int(3);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_5) {
-    fra.me.REG[4] = BOX_NativeString("Int");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_5 = fra.me.REG[4];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[4] = once_value_5;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  if (!once_value_6) {
-    fra.me.REG[4] = BOX_NativeString("Char");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_6 = fra.me.REG[4];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[4] = once_value_6;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  if (!once_value_7) {
-    fra.me.REG[4] = BOX_NativeString("Bool");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_7 = fra.me.REG[4];
-    register_static_object(&once_value_7);
-  } else fra.me.REG[4] = once_value_7;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB0 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB1)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* compiling/compiling_global.nit:38 */
-      fra.me.REG[6] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[7] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
-      REGB1 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      if (UNTAG_Bool(REGB1)) {
-        /* compiling/compiling_global.nit:39 */
-        fra.me.REG[7] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
-        fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
-        fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
-        /* compiling/compiling_global.nit:40 */
-        REGB1 = TAG_Int(3);
-        fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-        if (!once_value_8) {
-          fra.me.REG[6] = BOX_NativeString(", (const classtable_t)VFT_");
-          REGB1 = TAG_Int(26);
-          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1);
-          once_value_8 = fra.me.REG[6];
-          register_static_object(&once_value_8);
-        } else fra.me.REG[6] = once_value_8;
-        fra.me.REG[6] = fra.me.REG[6];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-        fra.me.REG[5] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[5])(fra.me.REG[5]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
-        if (!once_value_9) {
-          fra.me.REG[5] = BOX_NativeString("");
-          REGB1 = TAG_Int(0);
-          fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1);
-          once_value_9 = fra.me.REG[5];
-          register_static_object(&once_value_9);
-        } else fra.me.REG[5] = once_value_9;
-        fra.me.REG[5] = fra.me.REG[5];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
-        fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-        CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
-      } else {
-        /* compiling/compiling_global.nit:42 */
-        if (!once_value_10) {
-          fra.me.REG[7] = BOX_NativeString(", NULL");
-          REGB1 = TAG_Int(6);
-          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
-          once_value_10 = fra.me.REG[7];
-          register_static_object(&once_value_10);
-        } else fra.me.REG[7] = once_value_10;
-        fra.me.REG[7] = fra.me.REG[7];
-        CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
-      }
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB0 = REGB1;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label11;
-    }
-  }
-  label11: while(0);
-  /* compiling/compiling_global.nit:45 */
-  if (!once_value_12) {
-    fra.me.REG[0] = BOX_NativeString("};");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_12 = fra.me.REG[0];
-    register_static_object(&once_value_12);
-  } else fra.me.REG[0] = once_value_12;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* compiling/compiling_global.nit:46 */
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_compiling___compiling_global___Program___compile_tables_to_c_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_compiling___compiling_global;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_compiling___compiling_global___Program___compile_tables_to_c;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* compiling/compiling_global.nit:28 */
-    CALL_compiling___compiling_global___MMModule___compile_local_table_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-  void OC_compiling___compiling_global___Program___compile_tables_to_c_2(struct stack_frame_t *closctx, val_t p0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    val_t REGB1;
-    val_t tmp;
-    /* compiling/compiling_global.nit:31 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_compiling___compiling_global;
-    fra.me.line = 31;
-    fra.me.meth = LOCATE_compiling___compiling_global___Program___compile_tables_to_c;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.REG[0] = p0;
-    /* compiling/compiling_global.nit:32 */
-    fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-    REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
-    if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(1);
-    } else {
-      fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-      REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = REGB1;
-    }
-    if (UNTAG_Bool(REGB0)) {
-      goto label3;
-    }
-    /* compiling/compiling_global.nit:33 */
-    CALL_compiling___compiling_global___MMLocalClass___compile_tables_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-    label3: while(0);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_compiling___compiling_global___Program___compile_main_part[] = "compiling_global::Program::compile_main_part";
-void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-    static val_t once_value_4; /* Once value */
-    static val_t once_value_5; /* Once value */
-    static val_t once_value_6; /* Once value */
-    static val_t once_value_7; /* Once value */
-    static val_t once_value_8; /* Once value */
-    static val_t once_value_9; /* Once value */
-  static val_t once_value_10; /* Once value */
-  static val_t once_value_11; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 49;
-  fra.me.meth = LOCATE_compiling___compiling_global___Program___compile_main_part;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:52 */
-  if (!once_value_1) {
-    fra.me.REG[2] = BOX_NativeString("int main(int argc, char **argv) {");
-    REGB0 = TAG_Int(33);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_1 = fra.me.REG[2];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[2] = once_value_1;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* compiling/compiling_global.nit:53 */
-  CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:54 */
-  if (!once_value_2) {
-    fra.me.REG[2] = BOX_NativeString("prepare_signals();");
-    REGB0 = TAG_Int(18);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_2 = fra.me.REG[2];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[2] = once_value_2;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* compiling/compiling_global.nit:55 */
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("glob_argc = argc; glob_argv = argv;");
-    REGB0 = TAG_Int(35);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* compiling/compiling_global.nit:56 */
-  fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_program___Program___main_method(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* compiling/compiling_global.nit:57 */
-    if (!once_value_4) {
-      fra.me.REG[2] = BOX_NativeString("No main");
-      REGB0 = TAG_Int(7);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-      once_value_4 = fra.me.REG[2];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[2] = once_value_4;
-    fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  } else {
-    /* compiling/compiling_global.nit:59 */
-    fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-    fra.me.REG[2] = CALL_program___Program___main_class(fra.me.REG[2])(fra.me.REG[2]);
-    /* compiling/compiling_global.nit:60 */
-    REGB0 = TAG_Int(3);
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_5) {
-      fra.me.REG[3] = BOX_NativeString("G_sys = NEW_");
-      REGB0 = TAG_Int(12);
-      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-      once_value_5 = fra.me.REG[3];
-      register_static_object(&once_value_5);
-    } else fra.me.REG[3] = once_value_5;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 60);
-    }
-    fra.me.REG[2] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    if (!once_value_6) {
-      fra.me.REG[2] = BOX_NativeString("();");
-      REGB0 = TAG_Int(3);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-      once_value_6 = fra.me.REG[2];
-      register_static_object(&once_value_6);
-    } else fra.me.REG[2] = once_value_6;
-    fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* compiling/compiling_global.nit:61 */
-    if (!once_value_7) {
-      fra.me.REG[0] = BOX_NativeString("register_static_object(&G_sys);");
-      REGB0 = TAG_Int(31);
-      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      once_value_7 = fra.me.REG[0];
-      register_static_object(&once_value_7);
-    } else fra.me.REG[0] = once_value_7;
-    fra.me.REG[0] = fra.me.REG[0];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* compiling/compiling_global.nit:62 */
-    REGB0 = TAG_Int(3);
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_8) {
-      fra.me.REG[2] = BOX_NativeString("");
-      REGB0 = TAG_Int(0);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-      once_value_8 = fra.me.REG[2];
-      register_static_object(&once_value_8);
-    } else fra.me.REG[2] = once_value_8;
-    fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-    fra.me.REG[2] = CALL_program___Program___main_method(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 62);
-    }
-    fra.me.REG[2] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    if (!once_value_9) {
-      fra.me.REG[2] = BOX_NativeString("(G_sys);");
-      REGB0 = TAG_Int(8);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-      once_value_9 = fra.me.REG[2];
-      register_static_object(&once_value_9);
-    } else fra.me.REG[2] = once_value_9;
-    fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  }
-  /* compiling/compiling_global.nit:64 */
-  if (!once_value_10) {
-    fra.me.REG[0] = BOX_NativeString("return 0;");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_10 = fra.me.REG[0];
-    register_static_object(&once_value_10);
-  } else fra.me.REG[0] = once_value_10;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* compiling/compiling_global.nit:65 */
-  CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:66 */
-  if (!once_value_11) {
-    fra.me.REG[0] = BOX_NativeString("}");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_11 = fra.me.REG[0];
-    register_static_object(&once_value_11);
-  } else fra.me.REG[0] = once_value_11;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___MMModule___declare_class_tables_to_c[] = "compiling_global::MMModule::declare_class_tables_to_c";
-void compiling___compiling_global___MMModule___declare_class_tables_to_c(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 71;
-  fra.me.meth = LOCATE_compiling___compiling_global___MMModule___declare_class_tables_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:74 */
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___MMModule___declare_class_tables_to_c_1));
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_compiling___compiling_global___MMModule___declare_class_tables_to_c_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    val_t REGB1;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_compiling___compiling_global;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_compiling___compiling_global___MMModule___declare_class_tables_to_c;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* compiling/compiling_global.nit:75 */
-    fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-    REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[0]));
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[0]);
-      REGB0 = REGB1;
-    }
-    if (UNTAG_Bool(REGB0)) {
-      /* compiling/compiling_global.nit:76 */
-      CALL_compiling___compiling_global___MMLocalClass___declare_tables_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-    }
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_compiling___compiling_global___MMModule___compile_mod_to_c[] = "compiling_global::MMModule::compile_mod_to_c";
-void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-    static val_t once_value_4; /* Once value */
-        static val_t once_value_5; /* Once value */
-        static val_t once_value_6; /* Once value */
-        static val_t once_value_7; /* Once value */
-        static val_t once_value_8; /* Once value */
-        static val_t once_value_9; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 81;
-  fra.me.meth = LOCATE_compiling___compiling_global___MMModule___compile_mod_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:84 */
-  REGB0 = TAG_Int(3);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("extern const char LOCATE_");
-    REGB0 = TAG_Int(25);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_1 = fra.me.REG[3];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[3] = once_value_1;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_2) {
-    fra.me.REG[3] = BOX_NativeString("[];");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_2 = fra.me.REG[3];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[3] = once_value_2;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* compiling/compiling_global.nit:85 */
-  fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* compiling/compiling_global.nit:86 */
-    REGB0 = TAG_Int(3);
-    fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_3) {
-      fra.me.REG[3] = BOX_NativeString("extern const int SFT_");
-      REGB0 = TAG_Int(21);
-      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-      once_value_3 = fra.me.REG[3];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[3] = once_value_3;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    fra.me.REG[3] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    if (!once_value_4) {
-      fra.me.REG[3] = BOX_NativeString("[];");
-      REGB0 = TAG_Int(3);
-      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-      once_value_4 = fra.me.REG[3];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[3] = once_value_4;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  }
-  /* compiling/compiling_global.nit:88 */
-  REGB0 = TAG_Int(0);
-  /* compiling/compiling_global.nit:89 */
-  fra.me.REG[2] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB1 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB3)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-      /* compiling/compiling_global.nit:91 */
-      fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[5] = CALL_program___Program___tc(fra.me.REG[5])(fra.me.REG[5]);
-      REGB2 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[5])(fra.me.REG[5]);
-      if (UNTAG_Bool(REGB2)) {
-        /* compiling/compiling_global.nit:92 */
-        REGB2 = TAG_Int(3);
-        fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-        if (!once_value_5) {
-          fra.me.REG[6] = BOX_NativeString("");
-          REGB2 = TAG_Int(0);
-          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-          once_value_5 = fra.me.REG[6];
-          register_static_object(&once_value_5);
-        } else fra.me.REG[6] = once_value_5;
-        fra.me.REG[6] = fra.me.REG[6];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[6] = CALL_compiling___compiling_global___ModuleTableElt___value(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        if (!once_value_6) {
-          fra.me.REG[6] = BOX_NativeString("");
-          REGB2 = TAG_Int(0);
-          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-          once_value_6 = fra.me.REG[6];
-          register_static_object(&once_value_6);
-        } else fra.me.REG[6] = once_value_6;
-        fra.me.REG[6] = fra.me.REG[6];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-      } else {
-        /* compiling/compiling_global.nit:94 */
-        REGB2 = TAG_Int(5);
-        fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-        if (!once_value_7) {
-          fra.me.REG[7] = BOX_NativeString("SFT_");
-          REGB2 = TAG_Int(4);
-          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
-          once_value_7 = fra.me.REG[7];
-          register_static_object(&once_value_7);
-        } else fra.me.REG[7] = once_value_7;
-        fra.me.REG[7] = fra.me.REG[7];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-        fra.me.REG[7] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-        if (!once_value_8) {
-          fra.me.REG[7] = BOX_NativeString("[");
-          REGB2 = TAG_Int(1);
-          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
-          once_value_8 = fra.me.REG[7];
-          register_static_object(&once_value_8);
-        } else fra.me.REG[7] = once_value_8;
-        fra.me.REG[7] = fra.me.REG[7];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-        fra.me.REG[7] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-        if (!once_value_9) {
-          fra.me.REG[7] = BOX_NativeString("]");
-          REGB2 = TAG_Int(1);
-          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
-          once_value_9 = fra.me.REG[7];
-          register_static_object(&once_value_9);
-        } else fra.me.REG[7] = once_value_9;
-        fra.me.REG[7] = fra.me.REG[7];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-        fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-        fra.me.REG[5] = fra.me.REG[6];
-        /* compiling/compiling_global.nit:95 */
-        REGB2 = TAG_Int(1);
-        /* ../lib/standard/kernel.nit:245 */
-        REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* compiling/compiling_global.nit:95 */
-        REGB0 = REGB2;
-      }
-      /* compiling/compiling_global.nit:97 */
-      CALL_compiling___compiling_global___AbsTableElt___compile_macros(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB1 = REGB2;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label10;
-    }
-  }
-  label10: while(0);
-  /* compiling/compiling_global.nit:99 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___MMModule___compile_mod_to_c_11));
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_compiling___compiling_global___MMModule___compile_mod_to_c_11(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_compiling___compiling_global;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_compiling___compiling_global___MMModule___compile_mod_to_c;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    closctx->REG[3] = fra.me.REG[0];
-    /* compiling/compiling_global.nit:100 */
-    REGB0 = TAG_Bool(VAL_ISA(closctx->REG[3], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      goto label12;
-    }
-    /* compiling/compiling_global.nit:101 */
-    fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[3])(closctx->REG[3]);
-    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_compiling___compiling_global___MMModule___compile_mod_to_c_13));
-    label12: while(0);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-    void OC_compiling___compiling_global___MMModule___compile_mod_to_c_13(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-      struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-      val_t REGB0;
-      val_t REGB1;
-      val_t REGB2;
-      val_t REGB3;
-      fun_t CREG[1];
-      val_t tmp;
-            static val_t once_value_14; /* Once value */
-            static val_t once_value_15; /* Once value */
-        static val_t once_value_17; /* Once value */
-        static val_t once_value_18; /* Once value */
-        static val_t once_value_19; /* Once value */
-        static val_t once_value_20; /* Once value */
-        static val_t once_value_21; /* Once value */
-      fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-      fra.me.file = LOCATE_compiling___compiling_global;
-      fra.me.line = 0;
-      fra.me.meth = LOCATE_compiling___compiling_global___MMModule___compile_mod_to_c;
-      fra.me.has_broke = 0;
-      fra.me.REG_size = 4;
-      fra.me.nitni_local_ref_head = NULL;
-      fra.me.REG[0] = NIT_NULL;
-      fra.me.REG[1] = NIT_NULL;
-      fra.me.REG[2] = NIT_NULL;
-      fra.me.REG[3] = NIT_NULL;
-      fra.me.closure_ctx = closctx_param;
-      fra.me.closure_funs = CREG;
-      fra.me.REG[0] = p0;
-      CREG[0] = clos_fun0;
-      /* compiling/compiling_global.nit:102 */
-      fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
-      /* compiling/compiling_global.nit:103 */
-      fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],closctx->REG[3]));
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], closctx->REG[3]);
-        REGB0 = REGB1;
-      }
-      if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
-      } else {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      }
-      if (UNTAG_Bool(REGB0)) {
-        /* compiling/compiling_global.nit:104 */
-        CALL_compiling___compiling_global___MMMethod___compile_property_to_c(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]);
-      }
-      /* compiling/compiling_global.nit:106 */
-      REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
-      if (UNTAG_Bool(REGB0)) {
-        /* compiling/compiling_global.nit:108 */
-        fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-        /* compiling/compiling_global.nit:109 */
-        REGB0 = TAG_Int(0);
-        fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]);
-        REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 109);
-        }
-        REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
-        /* ../lib/standard/kernel.nit:404 */
-        while(1) {
-          REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-          if (UNTAG_Bool(REGB2)) {
-          } else {
-            nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-          }
-          /* ../lib/standard/kernel.nit:242 */
-          REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-          /* ../lib/standard/kernel.nit:404 */
-          if (UNTAG_Bool(REGB2)) {
-            /* compiling/compiling_global.nit:109 */
-            REGB2 = REGB0;
-            /* compiling/compiling_global.nit:110 */
-            REGB3 = TAG_Int(3);
-            fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
-            if (!once_value_14) {
-              fra.me.REG[3] = BOX_NativeString("val_t p");
-              REGB3 = TAG_Int(7);
-              fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB3);
-              once_value_14 = fra.me.REG[3];
-              register_static_object(&once_value_14);
-            } else fra.me.REG[3] = once_value_14;
-            fra.me.REG[3] = fra.me.REG[3];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-            fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-            if (!once_value_15) {
-              fra.me.REG[3] = BOX_NativeString("");
-              REGB2 = TAG_Int(0);
-              fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
-              once_value_15 = fra.me.REG[3];
-              register_static_object(&once_value_15);
-            } else fra.me.REG[3] = once_value_15;
-            fra.me.REG[3] = fra.me.REG[3];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-            fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-            /* ../lib/standard/kernel.nit:406 */
-            REGB2 = TAG_Int(1);
-            /* ../lib/standard/kernel.nit:245 */
-            REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-            /* ../lib/standard/kernel.nit:406 */
-            REGB0 = REGB2;
-          } else {
-            /* ../lib/standard/kernel.nit:404 */
-            goto label16;
-          }
-        }
-        label16: while(0);
-        /* compiling/compiling_global.nit:112 */
-        REGB0 = TAG_Int(7);
-        fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-        if (!once_value_17) {
-          fra.me.REG[3] = BOX_NativeString("val_t NEW_");
-          REGB0 = TAG_Int(10);
-          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-          once_value_17 = fra.me.REG[3];
-          register_static_object(&once_value_17);
-        } else fra.me.REG[3] = once_value_17;
-        fra.me.REG[3] = fra.me.REG[3];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        fra.me.REG[3] = CALL_standard___string___Object___to_s(closctx->REG[3])(closctx->REG[3]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        if (!once_value_18) {
-          fra.me.REG[3] = BOX_NativeString("_");
-          REGB0 = TAG_Int(1);
-          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-          once_value_18 = fra.me.REG[3];
-          register_static_object(&once_value_18);
-        } else fra.me.REG[3] = once_value_18;
-        fra.me.REG[3] = fra.me.REG[3];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[1] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[1])(fra.me.REG[1]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-        if (!once_value_19) {
-          fra.me.REG[1] = BOX_NativeString("(");
-          REGB0 = TAG_Int(1);
-          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-          once_value_19 = fra.me.REG[1];
-          register_static_object(&once_value_19);
-        } else fra.me.REG[1] = once_value_19;
-        fra.me.REG[1] = fra.me.REG[1];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-        if (!once_value_20) {
-          fra.me.REG[1] = BOX_NativeString(", ");
-          REGB0 = TAG_Int(2);
-          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-          once_value_20 = fra.me.REG[1];
-          register_static_object(&once_value_20);
-        } else fra.me.REG[1] = once_value_20;
-        fra.me.REG[1] = fra.me.REG[1];
-        fra.me.REG[1] = CALL_standard___string___Collection___join(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-        if (!once_value_21) {
-          fra.me.REG[1] = BOX_NativeString(");");
-          REGB0 = TAG_Int(2);
-          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-          once_value_21 = fra.me.REG[1];
-          register_static_object(&once_value_21);
-        } else fra.me.REG[1] = once_value_21;
-        fra.me.REG[1] = fra.me.REG[1];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-        fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-        CALL_compiling___compiling_base___CompilerVisitor___add_decl(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]);
-      }
-      stack_frame_head = fra.me.prev;
-      return;
-    }
-static const char LOCATE_compiling___compiling_global___MMModule___compile_local_table_to_c[] = "compiling_global::MMModule::compile_local_table_to_c";
-void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_5; /* Once value */
-  static val_t once_value_6; /* Once value */
-  static val_t once_value_7; /* Once value */
-      static val_t once_value_8; /* Once value */
-  static val_t once_value_10; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 118;
-  fra.me.meth = LOCATE_compiling___compiling_global___MMModule___compile_local_table_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:121 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("const char LOCATE_");
-    REGB0 = TAG_Int(18);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_1 = fra.me.REG[3];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[3] = once_value_1;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_2) {
-    fra.me.REG[3] = BOX_NativeString("[] = \"");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_2 = fra.me.REG[3];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[3] = once_value_2;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___location(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[3] = CALL_location___Location___file(fra.me.REG[3])(fra.me.REG[3]);
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 121);
-  }
-  fra.me.REG[3] = CALL_location___SourceFile___filename(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_3) {
-    fra.me.REG[3] = BOX_NativeString("\";");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_3 = fra.me.REG[3];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[3] = once_value_3;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* compiling/compiling_global.nit:123 */
-  fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[2])(fra.me.REG[2]);
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(1);
-  } else {
-    fra.me.REG[2] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-    REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* compiling/compiling_global.nit:124 */
-    goto label4;
-  }
-  /* compiling/compiling_global.nit:127 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_5) {
-    fra.me.REG[3] = BOX_NativeString("const int SFT_");
-    REGB0 = TAG_Int(14);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_5 = fra.me.REG[3];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[3] = once_value_5;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_6) {
-    fra.me.REG[3] = BOX_NativeString("[");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_6 = fra.me.REG[3];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[3] = once_value_6;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:24 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-  }
-  REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* compiling/compiling_global.nit:127 */
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_7) {
-    fra.me.REG[3] = BOX_NativeString("] = {");
-    REGB0 = TAG_Int(5);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_7 = fra.me.REG[3];
-    register_static_object(&once_value_7);
-  } else fra.me.REG[3] = once_value_7;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* compiling/compiling_global.nit:128 */
-  CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:129 */
-  fra.me.REG[0] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB0 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB1)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* compiling/compiling_global.nit:130 */
-      fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[4] = CALL_compiling___compiling_global___ModuleTableElt___value(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-      if (!once_value_8) {
-        fra.me.REG[3] = BOX_NativeString(",");
-        REGB1 = TAG_Int(1);
-        fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB1);
-        once_value_8 = fra.me.REG[3];
-        register_static_object(&once_value_8);
-      } else fra.me.REG[3] = once_value_8;
-      fra.me.REG[3] = fra.me.REG[3];
-      fra.me.REG[3] = CALL_standard___string___String_____plus(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB0 = REGB1;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label9;
-    }
-  }
-  label9: while(0);
-  /* compiling/compiling_global.nit:132 */
-  CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:133 */
-  if (!once_value_10) {
-    fra.me.REG[2] = BOX_NativeString("};");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_10 = fra.me.REG[2];
-    register_static_object(&once_value_10);
-  } else fra.me.REG[2] = once_value_10;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  label4: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___AbsTableElt___compile_macros[] = "compiling_global::AbsTableElt::compile_macros";
-void compiling___compiling_global___AbsTableElt___compile_macros(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 140;
-  fra.me.meth = LOCATE_compiling___compiling_global___AbsTableElt___compile_macros;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* compiling/compiling_global.nit:140 */
-  nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 140);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___TableElt___compile_to_c[] = "compiling_global::TableElt::compile_to_c";
-val_t compiling___compiling_global___TableElt___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 145;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableElt___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* compiling/compiling_global.nit:145 */
-  nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 145);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_compiling___compiling_global___ModuleTableElt___value[] = "compiling_global::ModuleTableElt::value";
-val_t compiling___compiling_global___ModuleTableElt___value(val_t p0, val_t p1){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 150;
-  fra.me.meth = LOCATE_compiling___compiling_global___ModuleTableElt___value;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* compiling/compiling_global.nit:150 */
-  nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 150);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_compiling___compiling_global___ModuleTableEltGroup___value[] = "compiling_global::ModuleTableEltGroup::(compiling_global::ModuleTableElt::value)";
-val_t compiling___compiling_global___ModuleTableEltGroup___value(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 155;
-  fra.me.meth = LOCATE_compiling___compiling_global___ModuleTableEltGroup___value;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:155 */
-  REGB0 = TAG_Int(3);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_1 = fra.me.REG[3];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[3] = once_value_1;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[0] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  if (!once_value_2) {
-    fra.me.REG[0] = BOX_NativeString(" /* Group of ? */");
-    REGB0 = TAG_Int(17);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_2 = fra.me.REG[0];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[0] = once_value_2;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  goto label3;
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-static const char LOCATE_compiling___compiling_global___ModuleTableEltGroup___compile_macros[] = "compiling_global::ModuleTableEltGroup::(compiling_global::AbsTableElt::compile_macros)";
-void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-      static val_t once_value_1; /* Once value */
-      static val_t once_value_2; /* Once value */
-      static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 156;
-  fra.me.meth = LOCATE_compiling___compiling_global___ModuleTableEltGroup___compile_macros;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:158 */
-  REGB0 = TAG_Int(0);
-  /* compiling/compiling_global.nit:159 */
-  fra.me.REG[0] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB1 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-    REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB3)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-      /* compiling/compiling_global.nit:160 */
-      REGB2 = TAG_Int(5);
-      fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_1) {
-        fra.me.REG[6] = BOX_NativeString("");
-        REGB2 = TAG_Int(0);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_1 = fra.me.REG[6];
-        register_static_object(&once_value_1);
-      } else fra.me.REG[6] = once_value_1;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
-      if (!once_value_2) {
-        fra.me.REG[6] = BOX_NativeString(" + ");
-        REGB2 = TAG_Int(3);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_2 = fra.me.REG[6];
-        register_static_object(&once_value_2);
-      } else fra.me.REG[6] = once_value_2;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      if (!once_value_3) {
-        fra.me.REG[6] = BOX_NativeString("");
-        REGB2 = TAG_Int(0);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_3 = fra.me.REG[6];
-        register_static_object(&once_value_3);
-      } else fra.me.REG[6] = once_value_3;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-      CALL_compiling___compiling_global___AbsTableElt___compile_macros(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
-      /* compiling/compiling_global.nit:161 */
-      REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* compiling/compiling_global.nit:161 */
-      REGB0 = REGB2;
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB1 = REGB2;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label4;
-    }
-  }
-  label4: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___TableEltMeth___compile_macros[] = "compiling_global::TableEltMeth::(compiling_global::AbsTableElt::compile_macros)";
-void compiling___compiling_global___TableEltMeth___compile_macros(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 167;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltMeth___compile_macros;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:169 */
-  fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* compiling/compiling_global.nit:170 */
-  REGB0 = TAG_Int(7);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("#define ");
-    REGB0 = TAG_Int(8);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_1 = fra.me.REG[4];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[4] = once_value_1;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[4] = CALL_compiling___compiling_base___MMGlobalProperty___meth_call(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  if (!once_value_2) {
-    fra.me.REG[4] = BOX_NativeString("(recv) ((");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_2 = fra.me.REG[4];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[4] = once_value_2;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[0] = BOX_NativeString("_t)CALL((recv), (");
-    REGB0 = TAG_Int(17);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_3 = fra.me.REG[0];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[0] = once_value_3;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString(")))");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___TableEltMeth___compile_to_c[] = "compiling_global::TableEltMeth::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltMeth___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 173;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltMeth___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:175 */
-  fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* compiling/compiling_global.nit:176 */
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_compiling___compiling_global___TableEltSuper___compile_macros[] = "compiling_global::TableEltSuper::(compiling_global::AbsTableElt::compile_macros)";
-void compiling___compiling_global___TableEltSuper___compile_macros(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 181;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltSuper___compile_macros;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:183 */
-  fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  /* compiling/compiling_global.nit:184 */
-  REGB0 = TAG_Int(7);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("#define ");
-    REGB0 = TAG_Int(8);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_1 = fra.me.REG[4];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[4] = once_value_1;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[4] = CALL_compiling___compiling_base___MMLocalProperty___super_meth_call(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  if (!once_value_2) {
-    fra.me.REG[4] = BOX_NativeString("(recv) ((");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_2 = fra.me.REG[4];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[4] = once_value_2;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[0] = BOX_NativeString("_t)CALL((recv), (");
-    REGB0 = TAG_Int(17);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_3 = fra.me.REG[0];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[0] = once_value_3;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString(")))");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___TableEltSuper___compile_to_c[] = "compiling_global::TableEltSuper::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltSuper___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 187;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltSuper___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:189 */
-  fra.me.REG[1] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:190 */
-  fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* compiling/compiling_global.nit:191 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___linear_extension(fra.me.REG[3])(fra.me.REG[3]);
-  /* compiling/compiling_global.nit:192 */
-  REGB0 = TAG_Bool(0);
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB1 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB3)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
-      /* compiling/compiling_global.nit:195 */
-      REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[1]));
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
-        REGB2 = REGB3;
-      }
-      if (UNTAG_Bool(REGB2)) {
-        /* compiling/compiling_global.nit:196 */
-        REGB2 = TAG_Bool(1);
-        REGB0 = REGB2;
-      } else {
-        /* compiling/compiling_global.nit:197 */
-        if (UNTAG_Bool(REGB0)) {
-          fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
-          REGB2 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-        } else {
-          REGB3 = TAG_Bool(0);
-          REGB2 = REGB3;
-        }
-        if (UNTAG_Bool(REGB2)) {
-          /* compiling/compiling_global.nit:198 */
-          REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-          if (UNTAG_Bool(REGB2)) {
-            /* compiling/compiling_global.nit:200 */
-            fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-            fra.me.REG[5] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[5])(fra.me.REG[5]);
-            goto label1;
-          }
-        }
-      }
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB1 = REGB2;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label2;
-    }
-  }
-  label2: while(0);
-  /* compiling/compiling_global.nit:204 */
-  nit_abort("Aborted", NULL, LOCATE_compiling___compiling_global, 204);
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[5];
-}
-static const char LOCATE_compiling___compiling_global___TableEltVTClassColor___compile_macros[] = "compiling_global::TableEltVTClassColor::(compiling_global::AbsTableElt::compile_macros)";
-void compiling___compiling_global___TableEltVTClassColor___compile_macros(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 209;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltVTClassColor___compile_macros;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:211 */
-  fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* compiling/compiling_global.nit:212 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("#define ");
-    REGB0 = TAG_Int(8);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_1 = fra.me.REG[4];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[4] = once_value_1;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_color(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_2) {
-    fra.me.REG[0] = BOX_NativeString("(recv) (VAL2VFT(recv)[");
-    REGB0 = TAG_Int(22);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_2 = fra.me.REG[0];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[0] = once_value_2;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("].i)");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___TableEltVTClassColor___compile_to_c[] = "compiling_global::TableEltVTClassColor::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  static val_t once_value_6; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 215;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltVTClassColor___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:215 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* compiling/compiling_global.nit:217 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:218 */
-  fra.me.REG[4] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* compiling/compiling_global.nit:219 */
-  fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-  fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
-  REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 219);
-  }
-  fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
-  fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
-  /* compiling/compiling_global.nit:220 */
-  fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[5])(fra.me.REG[5]);
-  REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_global, 220);
-  }
-  fra.me.REG[6] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[6])(fra.me.REG[6]);
-  /* compiling/compiling_global.nit:221 */
-  REGB0 = TAG_Int(11);
-  fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[7] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0);
-    once_value_1 = fra.me.REG[7];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[7] = once_value_1;
-  fra.me.REG[7] = fra.me.REG[7];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
-  fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-  fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
-  if (!once_value_2) {
-    fra.me.REG[6] = BOX_NativeString(" /* ");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-    once_value_2 = fra.me.REG[6];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[6] = once_value_2;
-  fra.me.REG[6] = fra.me.REG[6];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  if (!once_value_3) {
-    fra.me.REG[3] = BOX_NativeString(": VT ");
-    REGB0 = TAG_Int(5);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_3 = fra.me.REG[3];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[3] = once_value_3;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString("::");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-  if (!once_value_5) {
-    fra.me.REG[4] = BOX_NativeString(" : color of ");
-    REGB0 = TAG_Int(12);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_5 = fra.me.REG[4];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[4] = once_value_5;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-  fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-  if (!once_value_6) {
-    fra.me.REG[5] = BOX_NativeString(" */");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-    once_value_6 = fra.me.REG[5];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[5] = once_value_6;
-  fra.me.REG[5] = fra.me.REG[5];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-  goto label7;
-  label7: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_compiling___compiling_global___TableEltVTClassId___compile_macros[] = "compiling_global::TableEltVTClassId::(compiling_global::AbsTableElt::compile_macros)";
-void compiling___compiling_global___TableEltVTClassId___compile_macros(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 226;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltVTClassId___compile_macros;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:228 */
-  fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* compiling/compiling_global.nit:229 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("#define ");
-    REGB0 = TAG_Int(8);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_1 = fra.me.REG[4];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[4] = once_value_1;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_id(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_2) {
-    fra.me.REG[0] = BOX_NativeString("(recv) (VAL2VFT(recv)[");
-    REGB0 = TAG_Int(22);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_2 = fra.me.REG[0];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[0] = once_value_2;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("].i)");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___TableEltVTClassId___compile_to_c[] = "compiling_global::TableEltVTClassId::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  static val_t once_value_6; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 232;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltVTClassId___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:234 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:235 */
-  fra.me.REG[3] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* compiling/compiling_global.nit:236 */
-  fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
-  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 236);
-  }
-  fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
-  /* compiling/compiling_global.nit:237 */
-  REGB0 = TAG_Int(11);
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[6] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-    once_value_1 = fra.me.REG[6];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[6] = once_value_1;
-  fra.me.REG[6] = fra.me.REG[6];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  fra.me.REG[6] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-  REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 237);
-  }
-  REGB0 = CALL_compiling___table_computation___CompiledClass___id(fra.me.REG[6])(fra.me.REG[6]);
-  fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  if (!once_value_2) {
-    fra.me.REG[6] = BOX_NativeString(" /* ");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-    once_value_2 = fra.me.REG[6];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[6] = once_value_2;
-  fra.me.REG[6] = fra.me.REG[6];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[0] = BOX_NativeString(": VT ");
-    REGB0 = TAG_Int(5);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_3 = fra.me.REG[0];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[0] = once_value_3;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString("::");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-  if (!once_value_5) {
-    fra.me.REG[3] = BOX_NativeString(" : id of ");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_5 = fra.me.REG[3];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[3] = once_value_5;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-  fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-  if (!once_value_6) {
-    fra.me.REG[4] = BOX_NativeString(" */");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_6 = fra.me.REG[4];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[4] = once_value_6;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-  fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-  goto label7;
-  label7: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[5];
-}
-static const char LOCATE_compiling___compiling_global___TableEltAttr___compile_macros[] = "compiling_global::TableEltAttr::(compiling_global::AbsTableElt::compile_macros)";
-void compiling___compiling_global___TableEltAttr___compile_macros(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 242;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltAttr___compile_macros;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:244 */
-  fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* compiling/compiling_global.nit:245 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("#define ");
-    REGB0 = TAG_Int(8);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_1 = fra.me.REG[4];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[4] = once_value_1;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_2) {
-    fra.me.REG[0] = BOX_NativeString("(recv) ATTR(recv, (");
-    REGB0 = TAG_Int(19);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_2 = fra.me.REG[0];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[0] = once_value_2;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("))");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___TableEltAttr___compile_to_c[] = "compiling_global::TableEltAttr::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 248;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltAttr___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:250 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:251 */
-  fra.me.REG[3] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* compiling/compiling_global.nit:252 */
-  REGB0 = TAG_Int(7);
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[5] = BOX_NativeString("/* ");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-    once_value_1 = fra.me.REG[5];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[5] = once_value_1;
-  fra.me.REG[5] = fra.me.REG[5];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-  if (!once_value_2) {
-    fra.me.REG[0] = BOX_NativeString(": Attribute ");
-    REGB0 = TAG_Int(12);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_2 = fra.me.REG[0];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[0] = once_value_2;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("::");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  if (!once_value_4) {
-    fra.me.REG[3] = BOX_NativeString(" */");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_4 = fra.me.REG[3];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[3] = once_value_4;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  goto label5;
-  label5: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[4];
-}
-static const char LOCATE_compiling___compiling_global___AbsTableEltClass___symbol[] = "compiling_global::AbsTableEltClass::symbol";
-val_t compiling___compiling_global___AbsTableEltClass___symbol(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 258;
-  fra.me.meth = LOCATE_compiling___compiling_global___AbsTableEltClass___symbol;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* compiling/compiling_global.nit:258 */
-  nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 258);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_compiling___compiling_global___AbsTableEltClass___compile_macros[] = "compiling_global::AbsTableEltClass::(compiling_global::AbsTableElt::compile_macros)";
-void compiling___compiling_global___AbsTableEltClass___compile_macros(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 261;
-  fra.me.meth = LOCATE_compiling___compiling_global___AbsTableEltClass___compile_macros;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:263 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("#define ");
-    REGB0 = TAG_Int(8);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_1 = fra.me.REG[4];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[4] = once_value_1;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[0] = CALL_compiling___compiling_global___AbsTableEltClass___symbol(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_2) {
-    fra.me.REG[0] = BOX_NativeString(" (");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_2 = fra.me.REG[0];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[0] = once_value_2;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString(")");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassId___symbol[] = "compiling_global::TableEltClassId::(compiling_global::AbsTableEltClass::symbol)";
-val_t compiling___compiling_global___TableEltClassId___symbol(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 268;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassId___symbol;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* compiling/compiling_global.nit:268 */
-  fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassId___value[] = "compiling_global::TableEltClassId::(compiling_global::ModuleTableElt::value)";
-val_t compiling___compiling_global___TableEltClassId___value(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 270;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassId___value;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:272 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_1 = fra.me.REG[3];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[3] = once_value_1;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[3] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 272);
-  }
-  REGB0 = CALL_compiling___table_computation___CompiledClass___id(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_2) {
-    fra.me.REG[3] = BOX_NativeString(" /* Id of ");
-    REGB0 = TAG_Int(10);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_2 = fra.me.REG[3];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[3] = once_value_2;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[0] = BOX_NativeString(" */");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_3 = fra.me.REG[0];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[0] = once_value_3;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  goto label4;
-  label4: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassInitTable___symbol[] = "compiling_global::TableEltClassInitTable::(compiling_global::AbsTableEltClass::symbol)";
-val_t compiling___compiling_global___TableEltClassInitTable___symbol(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 277;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassInitTable___symbol;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* compiling/compiling_global.nit:277 */
-  fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___init_table_pos_id(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassInitTable___compile_to_c[] = "compiling_global::TableEltClassInitTable::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  static val_t once_value_6; /* Once value */
-  static val_t once_value_7; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 279;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassInitTable___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:281 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:282 */
-  fra.me.REG[3] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[4] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
-  fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* compiling/compiling_global.nit:283 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra.me.REG[3])(fra.me.REG[3]);
-  /* compiling/compiling_global.nit:284 */
-  REGB0 = TAG_Int(0);
-  /* compiling/compiling_global.nit:285 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:279 */
-    fra.me.REG[5] = fra.me.REG[3];
-    REGB1 = REGB0;
-    /* ../lib/standard/collection/array.nit:281 */
-    REGB2 = TAG_Int(0);
-    REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB3)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:243 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-    /* ../lib/standard/collection/array.nit:281 */
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
-      }
-      REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-      REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-      }
-      /* ../lib/standard/kernel.nit:242 */
-      REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    } else {
-      /* ../lib/standard/collection/array.nit:281 */
-      REGB3 = TAG_Bool(0);
-      REGB2 = REGB3;
-    }
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
-    }
-    /* ../lib/standard/collection/array.nit:282 */
-    fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-    REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
-    }
-    /* ../lib/standard/collection/array.nit:725 */
-    fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-    /* ../lib/standard/collection/array.nit:282 */
-    goto label1;
-    label1: while(0);
-    /* compiling/compiling_global.nit:285 */
-    REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 285);
-    }
-    fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
-    fra.me.REG[6] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
-    REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[6]));
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      REGB1 = REGB2;
-    }
-    REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    if (UNTAG_Bool(REGB1)) {
-      /* compiling/compiling_global.nit:286 */
-      REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* compiling/compiling_global.nit:286 */
-      REGB0 = REGB1;
-    } else {
-      /* compiling/compiling_global.nit:285 */
-      goto label2;
-    }
-  }
-  label2: while(0);
-  /* compiling/compiling_global.nit:288 */
-  REGB1 = TAG_Int(9);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-  if (!once_value_3) {
-    fra.me.REG[6] = BOX_NativeString("");
-    REGB1 = TAG_Int(0);
-    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1);
-    once_value_3 = fra.me.REG[6];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[6] = once_value_3;
-  fra.me.REG[6] = fra.me.REG[6];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-  fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-  if (!once_value_4) {
-    fra.me.REG[6] = BOX_NativeString(" /* ");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-    once_value_4 = fra.me.REG[6];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[6] = once_value_4;
-  fra.me.REG[6] = fra.me.REG[6];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_5) {
-    fra.me.REG[0] = BOX_NativeString(": ");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_5 = fra.me.REG[0];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[0] = once_value_5;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_6) {
-    fra.me.REG[2] = BOX_NativeString(" < ");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_6 = fra.me.REG[2];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[2] = once_value_6;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[4] = CALL_compiling___table_computation___CompiledClass___local_class(fra.me.REG[4])(fra.me.REG[4]);
-  fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  if (!once_value_7) {
-    fra.me.REG[4] = BOX_NativeString(": superclass init_table position */");
-    REGB0 = TAG_Int(35);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_7 = fra.me.REG[4];
-    register_static_object(&once_value_7);
-  } else fra.me.REG[4] = once_value_7;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  goto label8;
-  label8: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassColor___symbol[] = "compiling_global::TableEltClassColor::(compiling_global::AbsTableEltClass::symbol)";
-val_t compiling___compiling_global___TableEltClassColor___symbol(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 293;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassColor___symbol;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* compiling/compiling_global.nit:293 */
-  fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassColor___value[] = "compiling_global::TableEltClassColor::(compiling_global::ModuleTableElt::value)";
-val_t compiling___compiling_global___TableEltClassColor___value(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 295;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassColor___value;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:297 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_1 = fra.me.REG[3];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[3] = once_value_1;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[1] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  if (!once_value_2) {
-    fra.me.REG[1] = BOX_NativeString(" /* Color of ");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    once_value_2 = fra.me.REG[1];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[1] = once_value_2;
-  fra.me.REG[1] = fra.me.REG[1];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[0] = BOX_NativeString(" */");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_3 = fra.me.REG[0];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[0] = once_value_3;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  goto label4;
-  label4: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassColor___compile_to_c[] = "compiling_global::TableEltClassColor::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltClassColor___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 300;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassColor___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:302 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:303 */
-  fra.me.REG[3] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[4] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
-  fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* compiling/compiling_global.nit:304 */
-  REGB0 = TAG_Int(9);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[5] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-    once_value_1 = fra.me.REG[5];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[5] = once_value_1;
-  fra.me.REG[5] = fra.me.REG[5];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  REGB0 = CALL_compiling___table_computation___CompiledClass___id(fra.me.REG[4])(fra.me.REG[4]);
-  fra.me.REG[5] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  if (!once_value_2) {
-    fra.me.REG[5] = BOX_NativeString(" /* ");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-    once_value_2 = fra.me.REG[5];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[5] = once_value_2;
-  fra.me.REG[5] = fra.me.REG[5];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[0] = BOX_NativeString(": ");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_3 = fra.me.REG[0];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[0] = once_value_3;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString(" < ");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[4] = CALL_compiling___table_computation___CompiledClass___local_class(fra.me.REG[4])(fra.me.REG[4]);
-  fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  if (!once_value_5) {
-    fra.me.REG[4] = BOX_NativeString(": superclass typecheck marker */");
-    REGB0 = TAG_Int(32);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_5 = fra.me.REG[4];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[4] = once_value_5;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  goto label6;
-  label6: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-static const char LOCATE_compiling___compiling_global___TableEltComposite___compile_to_c[] = "compiling_global::TableEltComposite::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltComposite___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 309;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltComposite___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:309 */
-  nit_abort("Aborted", NULL, LOCATE_compiling___compiling_global, 309);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassSelfId___compile_to_c[] = "compiling_global::TableEltClassSelfId::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltClassSelfId___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 313;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassSelfId___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:315 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:316 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_1 = fra.me.REG[4];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[4] = once_value_1;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[4] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 316);
-  }
-  REGB0 = CALL_compiling___table_computation___CompiledClass___id(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_2) {
-    fra.me.REG[2] = BOX_NativeString(" /* ");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_2 = fra.me.REG[2];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[2] = once_value_2;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[0] = BOX_NativeString(": Identity */");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_3 = fra.me.REG[0];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[0] = once_value_3;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  goto label4;
-  label4: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassSelfName___compile_to_c[] = "compiling_global::TableEltClassSelfName::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltClassSelfName___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 321;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassSelfName___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:323 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:324 */
-  REGB0 = TAG_Int(5);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("\"");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_1 = fra.me.REG[4];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[4] = once_value_1;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMGlobalClass___name(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (!once_value_2) {
-    fra.me.REG[2] = BOX_NativeString("\" /* ");
-    REGB0 = TAG_Int(5);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_2 = fra.me.REG[2];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[2] = once_value_2;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[0] = BOX_NativeString(": Class Name */");
-    REGB0 = TAG_Int(15);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_3 = fra.me.REG[0];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[0] = once_value_3;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  goto label4;
-  label4: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-static const char LOCATE_compiling___compiling_global___TableEltClassObjectSize___compile_to_c[] = "compiling_global::TableEltClassObjectSize::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 329;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltClassObjectSize___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:331 */
-  REGB0 = TAG_Int(0);
-  /* compiling/compiling_global.nit:332 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:333 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("NativeArray");
-    REGB1 = TAG_Int(11);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1);
-    once_value_1 = fra.me.REG[4];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[4] = once_value_1;
-  fra.me.REG[4] = fra.me.REG[4];
-  fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-  REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    REGB1 = REGB2;
-  }
-  if (UNTAG_Bool(REGB1)) {
-    /* compiling/compiling_global.nit:334 */
-    REGB1 = TAG_Int(1);
-    /* ../lib/standard/kernel.nit:246 */
-    REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-    /* compiling/compiling_global.nit:334 */
-    REGB0 = REGB1;
-  } else {
-    /* compiling/compiling_global.nit:336 */
-    fra.me.REG[4] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
-    fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    /* compiling/compiling_global.nit:337 */
-    fra.me.REG[2] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[2])(fra.me.REG[2]);
-    /* ../lib/standard/collection/array.nit:270 */
-    REGB1 = TAG_Int(0);
-    /* ../lib/standard/collection/array.nit:271 */
-    REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-    }
-    REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ../lib/standard/collection/array.nit:272 */
-    fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-    /* ../lib/standard/collection/array.nit:273 */
-    while(1) {
-      /* ../lib/standard/collection/array.nit:24 */
-      REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-      }
-      REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-      REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-      }
-      /* ../lib/standard/kernel.nit:242 */
-      REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-      /* ../lib/standard/collection/array.nit:273 */
-      if (UNTAG_Bool(REGB2)) {
-        /* ../lib/standard/collection/array.nit:274 */
-        REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-          nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-        }
-        /* ../lib/standard/collection/array.nit:725 */
-        fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
-        /* compiling/compiling_global.nit:339 */
-        REGB2 = TAG_Int(1);
-        /* ../lib/standard/kernel.nit:245 */
-        REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* compiling/compiling_global.nit:339 */
-        REGB0 = REGB2;
-        /* ../lib/standard/collection/array.nit:275 */
-        REGB2 = TAG_Int(1);
-        /* ../lib/standard/kernel.nit:245 */
-        REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ../lib/standard/collection/array.nit:275 */
-        REGB1 = REGB2;
-      } else {
-        /* ../lib/standard/collection/array.nit:273 */
-        goto label2;
-      }
-    }
-    label2: while(0);
-  }
-  /* compiling/compiling_global.nit:342 */
-  REGB1 = TAG_Int(5);
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("");
-    REGB1 = TAG_Int(0);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB1);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString(" /* ");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-  if (!once_value_5) {
-    fra.me.REG[0] = BOX_NativeString(": Object size (-1 if a NativeArray)*/");
-    REGB0 = TAG_Int(37);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_5 = fra.me.REG[0];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[0] = once_value_5;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-  fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  goto label6;
-  label6: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[4];
-}
-static const char LOCATE_compiling___compiling_global___TableEltObjectId___compile_to_c[] = "compiling_global::TableEltObjectId::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltObjectId___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 347;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltObjectId___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:349 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:350 */
-  REGB0 = TAG_Int(3);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("/* ");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_1 = fra.me.REG[3];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[3] = once_value_1;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  if (!once_value_2) {
-    fra.me.REG[0] = BOX_NativeString(": Object_id */");
-    REGB0 = TAG_Int(14);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_2 = fra.me.REG[0];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[0] = once_value_2;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  goto label3;
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-static const char LOCATE_compiling___compiling_global___TableEltVftPointer___compile_to_c[] = "compiling_global::TableEltVftPointer::(compiling_global::TableElt::compile_to_c)";
-val_t compiling___compiling_global___TableEltVftPointer___compile_to_c(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 355;
-  fra.me.meth = LOCATE_compiling___compiling_global___TableEltVftPointer___compile_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* compiling/compiling_global.nit:357 */
-  fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:358 */
-  REGB0 = TAG_Int(3);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("/* ");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_1 = fra.me.REG[3];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[3] = once_value_1;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  if (!once_value_2) {
-    fra.me.REG[0] = BOX_NativeString(": Pointer to the classtable */");
-    REGB0 = TAG_Int(30);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_2 = fra.me.REG[0];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[0] = once_value_2;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  goto label3;
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-static const char LOCATE_compiling___compiling_global___MMLocalClass___declare_tables_to_c[] = "compiling_global::MMLocalClass::declare_tables_to_c";
-void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-    static val_t once_value_4; /* Once value */
-    static val_t once_value_5; /* Once value */
-    static val_t once_value_6; /* Once value */
-    static val_t once_value_7; /* Once value */
-    static val_t once_value_8; /* Once value */
-    static val_t once_value_9; /* Once value */
-    static val_t once_value_10; /* Once value */
-    static val_t once_value_11; /* Once value */
-    static val_t once_value_12; /* Once value */
-    static val_t once_value_13; /* Once value */
-    static val_t once_value_14; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 365;
-  fra.me.meth = LOCATE_compiling___compiling_global___MMLocalClass___declare_tables_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:368 */
-  if (!once_value_1) {
-    fra.me.REG[2] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_1 = fra.me.REG[2];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[2] = once_value_1;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* compiling/compiling_global.nit:369 */
-  fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
-  /* compiling/compiling_global.nit:370 */
-  REGB0 = TAG_Int(3);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_2) {
-    fra.me.REG[4] = BOX_NativeString("extern const classtable_elt_t VFT_");
-    REGB0 = TAG_Int(34);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_2 = fra.me.REG[4];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[4] = once_value_2;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[4] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  if (!once_value_3) {
-    fra.me.REG[4] = BOX_NativeString("[];");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    once_value_3 = fra.me.REG[4];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[4] = once_value_3;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* compiling/compiling_global.nit:371 */
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 371);
-    }
-    REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  } else {
-    REGB1 = TAG_Bool(0);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* compiling/compiling_global.nit:372 */
-    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 372);
-    }
-    fra.me.REG[2] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[2])(fra.me.REG[2]);
-    /* compiling/compiling_global.nit:373 */
-    REGB0 = TAG_Int(3);
-    fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_4) {
-      fra.me.REG[4] = BOX_NativeString("struct TBOX_");
-      REGB0 = TAG_Int(12);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-      once_value_4 = fra.me.REG[4];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[4] = once_value_4;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    if (!once_value_5) {
-      fra.me.REG[4] = BOX_NativeString("");
-      REGB0 = TAG_Int(0);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-      once_value_5 = fra.me.REG[4];
-      register_static_object(&once_value_5);
-    } else fra.me.REG[4] = once_value_5;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* compiling/compiling_global.nit:374 */
-    REGB0 = TAG_Int(5);
-    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_6) {
-      fra.me.REG[5] = BOX_NativeString("");
-      REGB0 = TAG_Int(0);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_6 = fra.me.REG[5];
-      register_static_object(&once_value_6);
-    } else fra.me.REG[5] = once_value_6;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    if (!once_value_7) {
-      fra.me.REG[5] = BOX_NativeString(" { const classtable_elt_t * vft; bigint object_id; ");
-      REGB0 = TAG_Int(51);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_7 = fra.me.REG[5];
-      register_static_object(&once_value_7);
-    } else fra.me.REG[5] = once_value_7;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    if (!once_value_8) {
-      fra.me.REG[5] = BOX_NativeString(" val;};");
-      REGB0 = TAG_Int(7);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_8 = fra.me.REG[5];
-      register_static_object(&once_value_8);
-    } else fra.me.REG[5] = once_value_8;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* compiling/compiling_global.nit:375 */
-    REGB0 = TAG_Int(5);
-    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_9) {
-      fra.me.REG[5] = BOX_NativeString("val_t BOX_");
-      REGB0 = TAG_Int(10);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_9 = fra.me.REG[5];
-      register_static_object(&once_value_9);
-    } else fra.me.REG[5] = once_value_9;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    if (!once_value_10) {
-      fra.me.REG[5] = BOX_NativeString("(");
-      REGB0 = TAG_Int(1);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_10 = fra.me.REG[5];
-      register_static_object(&once_value_10);
-    } else fra.me.REG[5] = once_value_10;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    if (!once_value_11) {
-      fra.me.REG[2] = BOX_NativeString(" val);");
-      REGB0 = TAG_Int(6);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-      once_value_11 = fra.me.REG[2];
-      register_static_object(&once_value_11);
-    } else fra.me.REG[2] = once_value_11;
-    fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* compiling/compiling_global.nit:376 */
-    REGB0 = TAG_Int(5);
-    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_12) {
-      fra.me.REG[2] = BOX_NativeString("#define UNBOX_");
-      REGB0 = TAG_Int(14);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-      once_value_12 = fra.me.REG[2];
-      register_static_object(&once_value_12);
-    } else fra.me.REG[2] = once_value_12;
-    fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-    if (!once_value_13) {
-      fra.me.REG[0] = BOX_NativeString("(x) (((");
-      REGB0 = TAG_Int(7);
-      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      once_value_13 = fra.me.REG[0];
-      register_static_object(&once_value_13);
-    } else fra.me.REG[0] = once_value_13;
-    fra.me.REG[0] = fra.me.REG[0];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    if (!once_value_14) {
-      fra.me.REG[3] = BOX_NativeString(" *)(VAL2OBJ(x)))->val)");
-      REGB0 = TAG_Int(22);
-      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-      once_value_14 = fra.me.REG[3];
-      register_static_object(&once_value_14);
-    } else fra.me.REG[3] = once_value_14;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_compiling___compiling_global___MMLocalClass___compile_tables_to_c[] = "compiling_global::MMLocalClass::compile_tables_to_c";
-void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-        static val_t once_value_4; /* Once value */
-        static val_t once_value_5; /* Once value */
-        static val_t once_value_6; /* Once value */
-    static val_t once_value_8; /* Once value */
-  static val_t once_value_9; /* Once value */
-        static val_t once_value_10; /* Once value */
-  static val_t once_value_12; /* Once value */
-    static val_t once_value_13; /* Once value */
-    static val_t once_value_14; /* Once value */
-    static val_t once_value_15; /* Once value */
-    static val_t once_value_16; /* Once value */
-    static val_t once_value_17; /* Once value */
-    static val_t once_value_18; /* Once value */
-    static val_t once_value_19; /* Once value */
-    static val_t once_value_20; /* Once value */
-    static val_t once_value_21; /* Once value */
-    static val_t once_value_22; /* Once value */
-      static val_t once_value_23; /* Once value */
-      static val_t once_value_24; /* Once value */
-      static val_t once_value_25; /* Once value */
-      static val_t once_value_26; /* Once value */
-      static val_t once_value_27; /* Once value */
-      static val_t once_value_28; /* Once value */
-      static val_t once_value_29; /* Once value */
-      static val_t once_value_30; /* Once value */
-      static val_t once_value_31; /* Once value */
-      static val_t once_value_32; /* Once value */
-      static val_t once_value_33; /* Once value */
-      static val_t once_value_34; /* Once value */
-      static val_t once_value_35; /* Once value */
-      static val_t once_value_36; /* Once value */
-      static val_t once_value_37; /* Once value */
-      static val_t once_value_38; /* Once value */
-      static val_t once_value_39; /* Once value */
-      static val_t once_value_40; /* Once value */
-      static val_t once_value_41; /* Once value */
-      static val_t once_value_42; /* Once value */
-      static val_t once_value_43; /* Once value */
-      static val_t once_value_44; /* Once value */
-      static val_t once_value_45; /* Once value */
-      static val_t once_value_46; /* Once value */
-      static val_t once_value_47; /* Once value */
-      static val_t once_value_48; /* Once value */
-      static val_t once_value_49; /* Once value */
-      static val_t once_value_50; /* Once value */
-        static val_t once_value_62; /* Once value */
-        static val_t once_value_63; /* Once value */
-        static val_t once_value_64; /* Once value */
-        static val_t once_value_65; /* Once value */
-        static val_t once_value_66; /* Once value */
-        static val_t once_value_67; /* Once value */
-        static val_t once_value_68; /* Once value */
-        static val_t once_value_69; /* Once value */
-        static val_t once_value_70; /* Once value */
-        static val_t once_value_71; /* Once value */
-        static val_t once_value_72; /* Once value */
-        static val_t once_value_73; /* Once value */
-        static val_t once_value_74; /* Once value */
-        static val_t once_value_75; /* Once value */
-        static val_t once_value_76; /* Once value */
-        static val_t once_value_77; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 380;
-  fra.me.meth = LOCATE_compiling___compiling_global___MMLocalClass___compile_tables_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 10;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
-  fra.me.REG[9] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:380 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* compiling/compiling_global.nit:383 */
-  fra.me.REG[3] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[3] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* compiling/compiling_global.nit:384 */
-  fra.me.REG[3] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[4])(fra.me.REG[4]);
-  /* ../lib/standard/collection/array.nit:24 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-  }
-  REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* compiling/compiling_global.nit:386 */
-  fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[5] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[5])(fra.me.REG[5]);
-  REGB1 = CALL_compiling___table_computation___TableInformation___max_class_table_length(fra.me.REG[5])(fra.me.REG[5]);
-  /* ../lib/standard/collection/array.nit:24 */
-  REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-  }
-  REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-  if (UNTAG_Bool(REGB3)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-  }
-  /* ../lib/standard/kernel.nit:244 */
-  REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  /* compiling/compiling_global.nit:386 */
-  if (UNTAG_Bool(REGB2)) {
-    /* compiling/compiling_global.nit:387 */
-    fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-    fra.me.REG[5] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[5])(fra.me.REG[5]);
-    REGB2 = CALL_compiling___table_computation___TableInformation___max_class_table_length(fra.me.REG[5])(fra.me.REG[5]);
-    REGB0 = REGB2;
-  }
-  /* compiling/compiling_global.nit:390 */
-  REGB2 = TAG_Int(5);
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-  if (!once_value_1) {
-    fra.me.REG[6] = BOX_NativeString("const classtable_elt_t VFT_");
-    REGB2 = TAG_Int(27);
-    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-    once_value_1 = fra.me.REG[6];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[6] = once_value_1;
-  fra.me.REG[6] = fra.me.REG[6];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  fra.me.REG[6] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  if (!once_value_2) {
-    fra.me.REG[6] = BOX_NativeString("[");
-    REGB2 = TAG_Int(1);
-    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-    once_value_2 = fra.me.REG[6];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[6] = once_value_2;
-  fra.me.REG[6] = fra.me.REG[6];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  if (!once_value_3) {
-    fra.me.REG[6] = BOX_NativeString("] = {");
-    REGB2 = TAG_Int(5);
-    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-    once_value_3 = fra.me.REG[6];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[6] = once_value_3;
-  fra.me.REG[6] = fra.me.REG[6];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* compiling/compiling_global.nit:391 */
-  CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ../lib/standard/collection/array.nit:267 */
-  fra.me.REG[5] = fra.me.REG[3];
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB2 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-    REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB3)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB1)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
-      /* compiling/compiling_global.nit:393 */
-      REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(0);
-          REGB1 = REGB3;
-        } else {
-          REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
-          REGB1 = REGB3;
-        }
-      }
-      if (UNTAG_Bool(REGB1)) {
-        /* compiling/compiling_global.nit:394 */
-        if (!once_value_4) {
-          fra.me.REG[8] = BOX_NativeString("{0} /* Class Hole :( */,");
-          REGB1 = TAG_Int(24);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-          once_value_4 = fra.me.REG[8];
-          register_static_object(&once_value_4);
-        } else fra.me.REG[8] = once_value_4;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
-      } else {
-        /* compiling/compiling_global.nit:396 */
-        REGB1 = TAG_Int(3);
-        fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-        if (!once_value_5) {
-          fra.me.REG[9] = BOX_NativeString("{(bigint) ");
-          REGB1 = TAG_Int(10);
-          fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB1);
-          once_value_5 = fra.me.REG[9];
-          register_static_object(&once_value_5);
-        } else fra.me.REG[9] = once_value_5;
-        fra.me.REG[9] = fra.me.REG[9];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
-        REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 396);
-        }
-        fra.me.REG[7] = CALL_compiling___compiling_global___TableElt___compile_to_c(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1], fra.me.REG[2]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
-        if (!once_value_6) {
-          fra.me.REG[7] = BOX_NativeString("},");
-          REGB1 = TAG_Int(2);
-          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
-          once_value_6 = fra.me.REG[7];
-          register_static_object(&once_value_6);
-        } else fra.me.REG[7] = once_value_6;
-        fra.me.REG[7] = fra.me.REG[7];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
-        fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
-      }
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB2 = REGB1;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label7;
-    }
-  }
-  label7: while(0);
-  /* ../lib/standard/collection/array.nit:24 */
-  REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-  }
-  REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-  }
-  /* ../lib/standard/kernel.nit:244 */
-  REGB2 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB2));
-  /* compiling/compiling_global.nit:399 */
-  if (UNTAG_Bool(REGB2)) {
-    /* compiling/compiling_global.nit:400 */
-    if (!once_value_8) {
-      fra.me.REG[6] = BOX_NativeString("{0},");
-      REGB2 = TAG_Int(4);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-      once_value_8 = fra.me.REG[6];
-      register_static_object(&once_value_8);
-    } else fra.me.REG[6] = once_value_8;
-    fra.me.REG[6] = fra.me.REG[6];
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ../lib/standard/kernel.nit:247 */
-    REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-    /* compiling/compiling_global.nit:400 */
-    fra.me.REG[6] = CALL_standard___string___String_____star(fra.me.REG[6])(fra.me.REG[6], REGB2);
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  }
-  /* compiling/compiling_global.nit:402 */
-  CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:403 */
-  if (!once_value_9) {
-    fra.me.REG[6] = BOX_NativeString("};");
-    REGB2 = TAG_Int(2);
-    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-    once_value_9 = fra.me.REG[6];
-    register_static_object(&once_value_9);
-  } else fra.me.REG[6] = once_value_9;
-  fra.me.REG[6] = fra.me.REG[6];
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* compiling/compiling_global.nit:404 */
-  fra.me.REG[4] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[4])(fra.me.REG[4]);
-  /* ../lib/standard/collection/array.nit:267 */
-  fra.me.REG[6] = fra.me.REG[4];
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB2 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-    REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB0)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
-      /* compiling/compiling_global.nit:406 */
-      REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(0);
-          REGB0 = REGB1;
-        } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
-          REGB0 = REGB1;
-        }
-      }
-      if (UNTAG_Bool(REGB0)) {
-        /* compiling/compiling_global.nit:407 */
-        if (!once_value_10) {
-          fra.me.REG[8] = BOX_NativeString("/* Instance Hole :( */");
-          REGB0 = TAG_Int(22);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-          once_value_10 = fra.me.REG[8];
-          register_static_object(&once_value_10);
-        } else fra.me.REG[8] = once_value_10;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
-      } else {
-        /* compiling/compiling_global.nit:409 */
-        REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-        if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 409);
-        }
-        fra.me.REG[5] = CALL_compiling___compiling_global___TableElt___compile_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[2]);
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-      }
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB0 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB2 = REGB0;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label11;
-    }
-  }
-  label11: while(0);
-  /* compiling/compiling_global.nit:413 */
-  fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
-  /* compiling/compiling_global.nit:414 */
-  fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
-  if (!once_value_12) {
-    fra.me.REG[5] = BOX_NativeString("NativeArray");
-    REGB2 = TAG_Int(11);
-    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-    once_value_12 = fra.me.REG[5];
-    register_static_object(&once_value_12);
-  } else fra.me.REG[5] = once_value_12;
-  fra.me.REG[5] = fra.me.REG[5];
-  fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
-  REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[6],fra.me.REG[5]));
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-    REGB2 = REGB0;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* compiling/compiling_global.nit:415 */
-    if (!once_value_13) {
-      fra.me.REG[5] = BOX_NativeString("val_t NEW_NativeArray(size_t length, size_t size) {");
-      REGB2 = TAG_Int(51);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-      once_value_13 = fra.me.REG[5];
-      register_static_object(&once_value_13);
-    } else fra.me.REG[5] = once_value_13;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* compiling/compiling_global.nit:416 */
-    CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-    /* compiling/compiling_global.nit:417 */
-    if (!once_value_14) {
-      fra.me.REG[5] = BOX_NativeString("Nit_NativeArray array;");
-      REGB2 = TAG_Int(22);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-      once_value_14 = fra.me.REG[5];
-      register_static_object(&once_value_14);
-    } else fra.me.REG[5] = once_value_14;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* compiling/compiling_global.nit:418 */
-    if (!once_value_15) {
-      fra.me.REG[5] = BOX_NativeString("array = (Nit_NativeArray)alloc(sizeof(struct Nit_NativeArray) + ((length - 1) * size));");
-      REGB2 = TAG_Int(87);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-      once_value_15 = fra.me.REG[5];
-      register_static_object(&once_value_15);
-    } else fra.me.REG[5] = once_value_15;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* compiling/compiling_global.nit:419 */
-    REGB2 = TAG_Int(3);
-    fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-    if (!once_value_16) {
-      fra.me.REG[6] = BOX_NativeString("array->vft = (classtable_elt_t*)VFT_");
-      REGB2 = TAG_Int(36);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-      once_value_16 = fra.me.REG[6];
-      register_static_object(&once_value_16);
-    } else fra.me.REG[6] = once_value_16;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    fra.me.REG[6] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    if (!once_value_17) {
-      fra.me.REG[6] = BOX_NativeString(";");
-      REGB2 = TAG_Int(1);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-      once_value_17 = fra.me.REG[6];
-      register_static_object(&once_value_17);
-    } else fra.me.REG[6] = once_value_17;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* compiling/compiling_global.nit:420 */
-    if (!once_value_18) {
-      fra.me.REG[5] = BOX_NativeString("array->object_id = object_id_counter;");
-      REGB2 = TAG_Int(37);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-      once_value_18 = fra.me.REG[5];
-      register_static_object(&once_value_18);
-    } else fra.me.REG[5] = once_value_18;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* compiling/compiling_global.nit:421 */
-    if (!once_value_19) {
-      fra.me.REG[5] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
-      REGB2 = TAG_Int(42);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-      once_value_19 = fra.me.REG[5];
-      register_static_object(&once_value_19);
-    } else fra.me.REG[5] = once_value_19;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* compiling/compiling_global.nit:422 */
-    if (!once_value_20) {
-      fra.me.REG[5] = BOX_NativeString("array->size = length;");
-      REGB2 = TAG_Int(21);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-      once_value_20 = fra.me.REG[5];
-      register_static_object(&once_value_20);
-    } else fra.me.REG[5] = once_value_20;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* compiling/compiling_global.nit:423 */
-    if (!once_value_21) {
-      fra.me.REG[5] = BOX_NativeString("return OBJ2VAL(array);");
-      REGB2 = TAG_Int(22);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-      once_value_21 = fra.me.REG[5];
-      register_static_object(&once_value_21);
-    } else fra.me.REG[5] = once_value_21;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* compiling/compiling_global.nit:424 */
-    CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-    /* compiling/compiling_global.nit:425 */
-    if (!once_value_22) {
-      fra.me.REG[5] = BOX_NativeString("}");
-      REGB2 = TAG_Int(1);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-      once_value_22 = fra.me.REG[5];
-      register_static_object(&once_value_22);
-    } else fra.me.REG[5] = once_value_22;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  } else {
-    /* compiling/compiling_global.nit:426 */
-    REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(0);
-        REGB2 = REGB0;
-      } else {
-        REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-        REGB2 = REGB0;
-      }
-    }
-    if (UNTAG_Bool(REGB2)) {
-      /* compiling/compiling_global.nit:429 */
-      REGB2 = TAG_Int(3);
-      fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_23) {
-        fra.me.REG[6] = BOX_NativeString("INIT_ATTRIBUTES__");
-        REGB2 = TAG_Int(17);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_23 = fra.me.REG[6];
-        register_static_object(&once_value_23);
-      } else fra.me.REG[6] = once_value_23;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      fra.me.REG[6] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      if (!once_value_24) {
-        fra.me.REG[6] = BOX_NativeString("");
-        REGB2 = TAG_Int(0);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_24 = fra.me.REG[6];
-        register_static_object(&once_value_24);
-      } else fra.me.REG[6] = once_value_24;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-      /* compiling/compiling_global.nit:430 */
-      fra.me.REG[6] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[2])(fra.me.REG[2]);
-      REGB2 = TAG_Int(3);
-      fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_25) {
-        fra.me.REG[7] = BOX_NativeString("init var of ");
-        REGB2 = TAG_Int(12);
-        fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
-        once_value_25 = fra.me.REG[7];
-        register_static_object(&once_value_25);
-      } else fra.me.REG[7] = once_value_25;
-      fra.me.REG[7] = fra.me.REG[7];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
-      fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
-      if (!once_value_26) {
-        fra.me.REG[7] = BOX_NativeString("");
-        REGB2 = TAG_Int(0);
-        fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
-        once_value_26 = fra.me.REG[7];
-        register_static_object(&once_value_26);
-      } else fra.me.REG[7] = once_value_26;
-      fra.me.REG[7] = fra.me.REG[7];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
-      fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-      REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 430);
-      }
-      fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[5], fra.me.REG[8], NIT_NULL, NIT_NULL);
-      /* compiling/compiling_global.nit:431 */
-      fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
-      /* compiling/compiling_global.nit:432 */
-      fra.me.REG[7] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[7] = CALL_compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
-      CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-      /* compiling/compiling_global.nit:433 */
-      fra.me.REG[7] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[2])(fra.me.REG[2]);
-      REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 433);
-      }
-      CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1], fra.me.REG[5], fra.me.REG[8]);
-      /* compiling/compiling_global.nit:434 */
-      CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:435 */
-      CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* compiling/compiling_global.nit:436 */
-      if (!once_value_27) {
-        fra.me.REG[6] = BOX_NativeString("}");
-        REGB2 = TAG_Int(1);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_27 = fra.me.REG[6];
-        register_static_object(&once_value_27);
-      } else fra.me.REG[6] = once_value_27;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:440 */
-      REGB2 = TAG_Int(3);
-      fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_28) {
-        fra.me.REG[8] = BOX_NativeString("val_t NEW_");
-        REGB2 = TAG_Int(10);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-        once_value_28 = fra.me.REG[8];
-        register_static_object(&once_value_28);
-      } else fra.me.REG[8] = once_value_28;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      fra.me.REG[8] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      if (!once_value_29) {
-        fra.me.REG[8] = BOX_NativeString("(void);");
-        REGB2 = TAG_Int(7);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-        once_value_29 = fra.me.REG[8];
-        register_static_object(&once_value_29);
-      } else fra.me.REG[8] = once_value_29;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:441 */
-      REGB2 = TAG_Int(3);
-      fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_30) {
-        fra.me.REG[8] = BOX_NativeString("val_t NEW_");
-        REGB2 = TAG_Int(10);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-        once_value_30 = fra.me.REG[8];
-        register_static_object(&once_value_30);
-      } else fra.me.REG[8] = once_value_30;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      fra.me.REG[8] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      if (!once_value_31) {
-        fra.me.REG[8] = BOX_NativeString("(void)");
-        REGB2 = TAG_Int(6);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-        once_value_31 = fra.me.REG[8];
-        register_static_object(&once_value_31);
-      } else fra.me.REG[8] = once_value_31;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:442 */
-      if (!once_value_32) {
-        fra.me.REG[6] = BOX_NativeString("{");
-        REGB2 = TAG_Int(1);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_32 = fra.me.REG[6];
-        register_static_object(&once_value_32);
-      } else fra.me.REG[6] = once_value_32;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:443 */
-      CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* compiling/compiling_global.nit:444 */
-      if (!once_value_33) {
-        fra.me.REG[6] = BOX_NativeString("obj_t obj;");
-        REGB2 = TAG_Int(10);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_33 = fra.me.REG[6];
-        register_static_object(&once_value_33);
-      } else fra.me.REG[6] = once_value_33;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:445 */
-      REGB2 = TAG_Int(3);
-      fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_34) {
-        fra.me.REG[8] = BOX_NativeString("obj = alloc(sizeof(val_t) * ");
-        REGB2 = TAG_Int(28);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-        once_value_34 = fra.me.REG[8];
-        register_static_object(&once_value_34);
-      } else fra.me.REG[8] = once_value_34;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      /* ../lib/standard/collection/array.nit:24 */
-      REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-      }
-      REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-      /* compiling/compiling_global.nit:445 */
-      fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      if (!once_value_35) {
-        fra.me.REG[4] = BOX_NativeString(");");
-        REGB2 = TAG_Int(2);
-        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-        once_value_35 = fra.me.REG[4];
-        register_static_object(&once_value_35);
-      } else fra.me.REG[4] = once_value_35;
-      fra.me.REG[4] = fra.me.REG[4];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:446 */
-      REGB2 = TAG_Int(3);
-      fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_36) {
-        fra.me.REG[4] = BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_");
-        REGB2 = TAG_Int(34);
-        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-        once_value_36 = fra.me.REG[4];
-        register_static_object(&once_value_36);
-      } else fra.me.REG[4] = once_value_36;
-      fra.me.REG[4] = fra.me.REG[4];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      fra.me.REG[4] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      if (!once_value_37) {
-        fra.me.REG[4] = BOX_NativeString(";");
-        REGB2 = TAG_Int(1);
-        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-        once_value_37 = fra.me.REG[4];
-        register_static_object(&once_value_37);
-      } else fra.me.REG[4] = once_value_37;
-      fra.me.REG[4] = fra.me.REG[4];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:447 */
-      if (!once_value_38) {
-        fra.me.REG[6] = BOX_NativeString("obj[1].object_id = object_id_counter;");
-        REGB2 = TAG_Int(37);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_38 = fra.me.REG[6];
-        register_static_object(&once_value_38);
-      } else fra.me.REG[6] = once_value_38;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:448 */
-      if (!once_value_39) {
-        fra.me.REG[6] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
-        REGB2 = TAG_Int(42);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_39 = fra.me.REG[6];
-        register_static_object(&once_value_39);
-      } else fra.me.REG[6] = once_value_39;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:449 */
-      if (!once_value_40) {
-        fra.me.REG[6] = BOX_NativeString("return OBJ2VAL(obj);");
-        REGB2 = TAG_Int(20);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_40 = fra.me.REG[6];
-        register_static_object(&once_value_40);
-      } else fra.me.REG[6] = once_value_40;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:450 */
-      CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* compiling/compiling_global.nit:451 */
-      if (!once_value_41) {
-        fra.me.REG[6] = BOX_NativeString("}");
-        REGB2 = TAG_Int(1);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-        once_value_41 = fra.me.REG[6];
-        register_static_object(&once_value_41);
-      } else fra.me.REG[6] = once_value_41;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* compiling/compiling_global.nit:455 */
-      REGB2 = TAG_Int(3);
-      fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_42) {
-        fra.me.REG[4] = BOX_NativeString("CHECKNEW_");
-        REGB2 = TAG_Int(9);
-        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-        once_value_42 = fra.me.REG[4];
-        register_static_object(&once_value_42);
-      } else fra.me.REG[4] = once_value_42;
-      fra.me.REG[4] = fra.me.REG[4];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      fra.me.REG[4] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      if (!once_value_43) {
-        fra.me.REG[4] = BOX_NativeString("");
-        REGB2 = TAG_Int(0);
-        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-        once_value_43 = fra.me.REG[4];
-        register_static_object(&once_value_43);
-      } else fra.me.REG[4] = once_value_43;
-      fra.me.REG[4] = fra.me.REG[4];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      /* compiling/compiling_global.nit:456 */
-      fra.me.REG[4] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[2])(fra.me.REG[2]);
-      REGB2 = TAG_Int(3);
-      fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_44) {
-        fra.me.REG[5] = BOX_NativeString("check new ");
-        REGB2 = TAG_Int(10);
-        fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-        once_value_44 = fra.me.REG[5];
-        register_static_object(&once_value_44);
-      } else fra.me.REG[5] = once_value_44;
-      fra.me.REG[5] = fra.me.REG[5];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
-      fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
-      if (!once_value_45) {
-        fra.me.REG[5] = BOX_NativeString("");
-        REGB2 = TAG_Int(0);
-        fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-        once_value_45 = fra.me.REG[5];
-        register_static_object(&once_value_45);
-      } else fra.me.REG[5] = once_value_45;
-      fra.me.REG[5] = fra.me.REG[5];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
-      fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-      REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 456);
-      }
-      fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[6], fra.me.REG[8], NIT_NULL, NIT_NULL);
-      /* compiling/compiling_global.nit:457 */
-      fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
-      /* compiling/compiling_global.nit:458 */
-      fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[5] = CALL_compiling_writer___Writer___sub(fra.me.REG[5])(fra.me.REG[5]);
-      CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-      /* compiling/compiling_global.nit:459 */
-      fra.me.REG[5] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[2])(fra.me.REG[2]);
-      REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 459);
-      }
-      CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6], fra.me.REG[8]);
-      /* compiling/compiling_global.nit:460 */
-      CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      /* compiling/compiling_global.nit:461 */
-      CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* compiling/compiling_global.nit:462 */
-      if (!once_value_46) {
-        fra.me.REG[4] = BOX_NativeString("}");
-        REGB2 = TAG_Int(1);
-        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-        once_value_46 = fra.me.REG[4];
-        register_static_object(&once_value_46);
-      } else fra.me.REG[4] = once_value_46;
-      fra.me.REG[4] = fra.me.REG[4];
-      CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      /* compiling/compiling_global.nit:465 */
-      fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters(fra.me.REG[4])(fra.me.REG[4]);
-      REGB2 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
-      REGB0 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* compiling/compiling_global.nit:466 */
-      REGB2 = TAG_Int(5);
-      fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_47) {
-        fra.me.REG[8] = BOX_NativeString("int init_table[");
-        REGB2 = TAG_Int(15);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-        once_value_47 = fra.me.REG[8];
-        register_static_object(&once_value_47);
-      } else fra.me.REG[8] = once_value_47;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-      fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-      if (!once_value_48) {
-        fra.me.REG[8] = BOX_NativeString("] = {0");
-        REGB2 = TAG_Int(6);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-        once_value_48 = fra.me.REG[8];
-        register_static_object(&once_value_48);
-      } else fra.me.REG[8] = once_value_48;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-      if (!once_value_49) {
-        fra.me.REG[8] = BOX_NativeString(", 0");
-        REGB2 = TAG_Int(3);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-        once_value_49 = fra.me.REG[8];
-        register_static_object(&once_value_49);
-      } else fra.me.REG[8] = once_value_49;
-      fra.me.REG[8] = fra.me.REG[8];
-      REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:247 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-      /* compiling/compiling_global.nit:466 */
-      fra.me.REG[8] = CALL_standard___string___String_____star(fra.me.REG[8])(fra.me.REG[8], REGB2);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-      if (!once_value_50) {
-        fra.me.REG[8] = BOX_NativeString("};");
-        REGB2 = TAG_Int(2);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-        once_value_50 = fra.me.REG[8];
-        register_static_object(&once_value_50);
-      } else fra.me.REG[8] = once_value_50;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-      fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-      /* compiling/compiling_global.nit:468 */
-      fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___MMLocalClass___compile_tables_to_c_51));
-    } else {
-      /* compiling/compiling_global.nit:485 */
-      REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 485);
-      }
-      REGB2 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[3])(fra.me.REG[3]);
-      REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-      if (UNTAG_Bool(REGB2)) {
-        /* compiling/compiling_global.nit:486 */
-        REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-          nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 486);
-        }
-        fra.me.REG[3] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[3])(fra.me.REG[3]);
-        /* compiling/compiling_global.nit:487 */
-        REGB2 = TAG_Int(3);
-        fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-        if (!once_value_62) {
-          fra.me.REG[4] = BOX_NativeString("struct TBOX_");
-          REGB2 = TAG_Int(12);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-          once_value_62 = fra.me.REG[4];
-          register_static_object(&once_value_62);
-        } else fra.me.REG[4] = once_value_62;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-        fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
-        fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-        if (!once_value_63) {
-          fra.me.REG[4] = BOX_NativeString("");
-          REGB2 = TAG_Int(0);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-          once_value_63 = fra.me.REG[4];
-          register_static_object(&once_value_63);
-        } else fra.me.REG[4] = once_value_63;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-        fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-        /* compiling/compiling_global.nit:488 */
-        REGB2 = TAG_Int(5);
-        fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-        if (!once_value_64) {
-          fra.me.REG[8] = BOX_NativeString("val_t BOX_");
-          REGB2 = TAG_Int(10);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-          once_value_64 = fra.me.REG[8];
-          register_static_object(&once_value_64);
-        } else fra.me.REG[8] = once_value_64;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-        fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
-        fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-        if (!once_value_65) {
-          fra.me.REG[8] = BOX_NativeString("(");
-          REGB2 = TAG_Int(1);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-          once_value_65 = fra.me.REG[8];
-          register_static_object(&once_value_65);
-        } else fra.me.REG[8] = once_value_65;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-        if (!once_value_66) {
-          fra.me.REG[3] = BOX_NativeString(" val) {");
-          REGB2 = TAG_Int(7);
-          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
-          once_value_66 = fra.me.REG[3];
-          register_static_object(&once_value_66);
-        } else fra.me.REG[3] = once_value_66;
-        fra.me.REG[3] = fra.me.REG[3];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-        fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* compiling/compiling_global.nit:489 */
-        CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-        /* compiling/compiling_global.nit:490 */
-        REGB2 = TAG_Int(7);
-        fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-        if (!once_value_67) {
-          fra.me.REG[3] = BOX_NativeString("");
-          REGB2 = TAG_Int(0);
-          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
-          once_value_67 = fra.me.REG[3];
-          register_static_object(&once_value_67);
-        } else fra.me.REG[3] = once_value_67;
-        fra.me.REG[3] = fra.me.REG[3];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-        if (!once_value_68) {
-          fra.me.REG[3] = BOX_NativeString(" *box = (");
-          REGB2 = TAG_Int(9);
-          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
-          once_value_68 = fra.me.REG[3];
-          register_static_object(&once_value_68);
-        } else fra.me.REG[3] = once_value_68;
-        fra.me.REG[3] = fra.me.REG[3];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-        if (!once_value_69) {
-          fra.me.REG[3] = BOX_NativeString("*)alloc(sizeof(");
-          REGB2 = TAG_Int(15);
-          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
-          once_value_69 = fra.me.REG[3];
-          register_static_object(&once_value_69);
-        } else fra.me.REG[3] = once_value_69;
-        fra.me.REG[3] = fra.me.REG[3];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-        if (!once_value_70) {
-          fra.me.REG[0] = BOX_NativeString("));");
-          REGB2 = TAG_Int(3);
-          fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
-          once_value_70 = fra.me.REG[0];
-          register_static_object(&once_value_70);
-        } else fra.me.REG[0] = once_value_70;
-        fra.me.REG[0] = fra.me.REG[0];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-        fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* compiling/compiling_global.nit:491 */
-        REGB2 = TAG_Int(3);
-        fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-        if (!once_value_71) {
-          fra.me.REG[0] = BOX_NativeString("box->vft = VFT_");
-          REGB2 = TAG_Int(15);
-          fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
-          once_value_71 = fra.me.REG[0];
-          register_static_object(&once_value_71);
-        } else fra.me.REG[0] = once_value_71;
-        fra.me.REG[0] = fra.me.REG[0];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-        fra.me.REG[2] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[2])(fra.me.REG[2]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-        if (!once_value_72) {
-          fra.me.REG[2] = BOX_NativeString(";");
-          REGB2 = TAG_Int(1);
-          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB2);
-          once_value_72 = fra.me.REG[2];
-          register_static_object(&once_value_72);
-        } else fra.me.REG[2] = once_value_72;
-        fra.me.REG[2] = fra.me.REG[2];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-        fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* compiling/compiling_global.nit:492 */
-        if (!once_value_73) {
-          fra.me.REG[4] = BOX_NativeString("box->val = val;");
-          REGB2 = TAG_Int(15);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-          once_value_73 = fra.me.REG[4];
-          register_static_object(&once_value_73);
-        } else fra.me.REG[4] = once_value_73;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* compiling/compiling_global.nit:493 */
-        if (!once_value_74) {
-          fra.me.REG[4] = BOX_NativeString("box->object_id = object_id_counter;");
-          REGB2 = TAG_Int(35);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-          once_value_74 = fra.me.REG[4];
-          register_static_object(&once_value_74);
-        } else fra.me.REG[4] = once_value_74;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* compiling/compiling_global.nit:494 */
-        if (!once_value_75) {
-          fra.me.REG[4] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
-          REGB2 = TAG_Int(42);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-          once_value_75 = fra.me.REG[4];
-          register_static_object(&once_value_75);
-        } else fra.me.REG[4] = once_value_75;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* compiling/compiling_global.nit:495 */
-        if (!once_value_76) {
-          fra.me.REG[4] = BOX_NativeString("return OBJ2VAL(box);");
-          REGB2 = TAG_Int(20);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-          once_value_76 = fra.me.REG[4];
-          register_static_object(&once_value_76);
-        } else fra.me.REG[4] = once_value_76;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* compiling/compiling_global.nit:496 */
-        CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-        /* compiling/compiling_global.nit:497 */
-        if (!once_value_77) {
-          fra.me.REG[4] = BOX_NativeString("}");
-          REGB2 = TAG_Int(1);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-          once_value_77 = fra.me.REG[4];
-          register_static_object(&once_value_77);
-        } else fra.me.REG[4] = once_value_77;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      }
-    }
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-      void OC_compiling___compiling_global___MMLocalClass___compile_tables_to_c_51(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-        struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-        val_t REGB0;
-        fun_t CREG[1];
-        val_t tmp;
-        static val_t once_value_53; /* Once value */
-        static val_t once_value_54; /* Once value */
-        static val_t once_value_55; /* Once value */
-        static val_t once_value_56; /* Once value */
-        static val_t once_value_57; /* Once value */
-        static val_t once_value_58; /* Once value */
-        static val_t once_value_59; /* Once value */
-        static val_t once_value_60; /* Once value */
-        static val_t once_value_61; /* Once value */
-        fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-        fra.me.file = LOCATE_compiling___compiling_global;
-        fra.me.line = 0;
-        fra.me.meth = LOCATE_compiling___compiling_global___MMLocalClass___compile_tables_to_c;
-        fra.me.has_broke = 0;
-        fra.me.REG_size = 5;
-        fra.me.nitni_local_ref_head = NULL;
-        fra.me.REG[0] = NIT_NULL;
-        fra.me.REG[1] = NIT_NULL;
-        fra.me.REG[2] = NIT_NULL;
-        fra.me.REG[3] = NIT_NULL;
-        fra.me.REG[4] = NIT_NULL;
-        fra.me.closure_ctx = closctx_param;
-        fra.me.closure_funs = CREG;
-        fra.me.REG[0] = p0;
-        CREG[0] = clos_fun0;
-        /* compiling/compiling_global.nit:469 */
-        fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-        /* compiling/compiling_global.nit:471 */
-        fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-        REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[1])(fra.me.REG[1], closctx->REG[2]);
-        REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-        if (UNTAG_Bool(REGB0)) {
-          goto label52;
-        }
-        /* compiling/compiling_global.nit:472 */
-        REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
-        if (UNTAG_Bool(REGB0)) {
-        } else {
-          nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_global, 472);
-        }
-        /* compiling/compiling_global.nit:474 */
-        REGB0 = TAG_Int(5);
-        fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-        if (!once_value_53) {
-          fra.me.REG[2] = BOX_NativeString("NEW_");
-          REGB0 = TAG_Int(4);
-          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-          once_value_53 = fra.me.REG[2];
-          register_static_object(&once_value_53);
-        } else fra.me.REG[2] = once_value_53;
-        fra.me.REG[2] = fra.me.REG[2];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-        fra.me.REG[2] = CALL_standard___string___Object___to_s(closctx->REG[2])(closctx->REG[2]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-        if (!once_value_54) {
-          fra.me.REG[2] = BOX_NativeString("_");
-          REGB0 = TAG_Int(1);
-          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-          once_value_54 = fra.me.REG[2];
-          register_static_object(&once_value_54);
-        } else fra.me.REG[2] = once_value_54;
-        fra.me.REG[2] = fra.me.REG[2];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-        fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-        fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[2])(fra.me.REG[2]);
-        fra.me.REG[2] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[2])(fra.me.REG[2]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-        if (!once_value_55) {
-          fra.me.REG[2] = BOX_NativeString("");
-          REGB0 = TAG_Int(0);
-          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-          once_value_55 = fra.me.REG[2];
-          register_static_object(&once_value_55);
-        } else fra.me.REG[2] = once_value_55;
-        fra.me.REG[2] = fra.me.REG[2];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-        fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-        /* compiling/compiling_global.nit:475 */
-        fra.me.REG[2] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
-        fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        REGB0 = TAG_Int(5);
-        fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-        if (!once_value_56) {
-          fra.me.REG[4] = BOX_NativeString("new ");
-          REGB0 = TAG_Int(4);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-          once_value_56 = fra.me.REG[4];
-          register_static_object(&once_value_56);
-        } else fra.me.REG[4] = once_value_56;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-        fra.me.REG[4] = CALL_standard___string___Object___to_s(closctx->REG[2])(closctx->REG[2]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-        if (!once_value_57) {
-          fra.me.REG[4] = BOX_NativeString(" ");
-          REGB0 = TAG_Int(1);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-          once_value_57 = fra.me.REG[4];
-          register_static_object(&once_value_57);
-        } else fra.me.REG[4] = once_value_57;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-        fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-        if (!once_value_58) {
-          fra.me.REG[4] = BOX_NativeString("");
-          REGB0 = TAG_Int(0);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-          once_value_58 = fra.me.REG[4];
-          register_static_object(&once_value_58);
-        } else fra.me.REG[4] = once_value_58;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-        fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-        REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 475);
-        }
-        fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], closctx->REG[1], fra.me.REG[1], fra.me.REG[3], NIT_NULL, NIT_NULL);
-        /* compiling/compiling_global.nit:476 */
-        fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(closctx->REG[1])(closctx->REG[1]);
-        /* compiling/compiling_global.nit:477 */
-        fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___writer(closctx->REG[1])(closctx->REG[1]);
-        fra.me.REG[4] = CALL_compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
-        CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(closctx->REG[1])(closctx->REG[1], fra.me.REG[4]);
-        /* compiling/compiling_global.nit:478 */
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], closctx->REG[4]);
-        /* compiling/compiling_global.nit:479 */
-        fra.me.REG[4] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
-        fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-        REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-        if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 479);
-        }
-        fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], fra.me.REG[1], fra.me.REG[3]);
-        REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
-        if (UNTAG_Bool(REGB0)) {
-        } else {
-          nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_global, 479);
-        }
-        /* compiling/compiling_global.nit:480 */
-        REGB0 = TAG_Int(3);
-        fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-        if (!once_value_59) {
-          fra.me.REG[0] = BOX_NativeString("return ");
-          REGB0 = TAG_Int(7);
-          fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-          once_value_59 = fra.me.REG[0];
-          register_static_object(&once_value_59);
-        } else fra.me.REG[0] = once_value_59;
-        fra.me.REG[0] = fra.me.REG[0];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-        if (!once_value_60) {
-          fra.me.REG[3] = BOX_NativeString(";");
-          REGB0 = TAG_Int(1);
-          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-          once_value_60 = fra.me.REG[3];
-          register_static_object(&once_value_60);
-        } else fra.me.REG[3] = once_value_60;
-        fra.me.REG[3] = fra.me.REG[3];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-        fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
-        /* compiling/compiling_global.nit:481 */
-        CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]);
-        /* compiling/compiling_global.nit:482 */
-        CALL_compiling___compiling_base___CompilerVisitor___unindent(closctx->REG[1])(closctx->REG[1]);
-        /* compiling/compiling_global.nit:483 */
-        if (!once_value_61) {
-          fra.me.REG[2] = BOX_NativeString("}");
-          REGB0 = TAG_Int(1);
-          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-          once_value_61 = fra.me.REG[2];
-          register_static_object(&once_value_61);
-        } else fra.me.REG[2] = once_value_61;
-        fra.me.REG[2] = fra.me.REG[2];
-        CALL_compiling___compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]);
-        label52: while(0);
-        stack_frame_head = fra.me.prev;
-        return;
-      }
-static const char LOCATE_compiling___compiling_global___MMMethod___compile_property_to_c[] = "compiling_global::MMMethod::compile_property_to_c";
-void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-    static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-    static val_t once_value_4; /* Once value */
-    static val_t once_value_5; /* Once value */
-    static val_t once_value_6; /* Once value */
-    static val_t once_value_7; /* Once value */
-    static val_t once_value_8; /* Once value */
-    static val_t once_value_9; /* Once value */
-    static val_t once_value_10; /* Once value */
-    static val_t once_value_11; /* Once value */
-    static val_t once_value_12; /* Once value */
-    static val_t once_value_13; /* Once value */
-    static val_t once_value_14; /* Once value */
-  static val_t once_value_15; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___compiling_global;
-  fra.me.line = 503;
-  fra.me.meth = LOCATE_compiling___compiling_global___MMMethod___compile_property_to_c;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 9;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* compiling/compiling_global.nit:505 */
-  fra.me.REG[2] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
-  /* compiling/compiling_global.nit:506 */
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_global, 506);
-  }
-  /* compiling/compiling_global.nit:508 */
-  fra.me.REG[3] = NIT_NULL;
-  /* compiling/compiling_global.nit:509 */
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
-  if (UNTAG_Bool(REGB0)) {
-    if (!once_value_1) {
-      fra.me.REG[4] = BOX_NativeString("int* init_table");
-      REGB0 = TAG_Int(15);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-      once_value_1 = fra.me.REG[4];
-      register_static_object(&once_value_1);
-    } else fra.me.REG[4] = once_value_1;
-    fra.me.REG[4] = fra.me.REG[4];
-    fra.me.REG[3] = fra.me.REG[4];
-  }
-  /* compiling/compiling_global.nit:510 */
-  fra.me.REG[4] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 510);
-  }
-  fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4], fra.me.REG[5], NIT_NULL, fra.me.REG[3]);
-  /* compiling/compiling_global.nit:511 */
-  fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:512 */
-  fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[4] = CALL_compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
-  CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* compiling/compiling_global.nit:513 */
-  fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:514 */
-  fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
-  CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* compiling/compiling_global.nit:516 */
-  fra.me.REG[6] = NIT_NULL;
-  /* compiling/compiling_global.nit:517 */
-  fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[7])(fra.me.REG[7]);
-  if (UNTAG_Bool(REGB0)) {
-    /* compiling/compiling_global.nit:518 */
-    REGB0 = TAG_Int(3);
-    fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_2) {
-      fra.me.REG[8] = BOX_NativeString("itpos");
-      REGB0 = TAG_Int(5);
-      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-      once_value_2 = fra.me.REG[8];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[8] = once_value_2;
-    fra.me.REG[8] = fra.me.REG[8];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    REGB0 = CALL_compiling___compiling_base___CompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
-    fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    if (!once_value_3) {
-      fra.me.REG[8] = BOX_NativeString("");
-      REGB0 = TAG_Int(0);
-      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-      once_value_3 = fra.me.REG[8];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[8] = once_value_3;
-    fra.me.REG[8] = fra.me.REG[8];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-    fra.me.REG[6] = fra.me.REG[7];
-    /* compiling/compiling_global.nit:519 */
-    REGB0 = TAG_Int(7);
-    fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_4) {
-      fra.me.REG[8] = BOX_NativeString("int ");
-      REGB0 = TAG_Int(4);
-      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-      once_value_4 = fra.me.REG[8];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[8] = once_value_4;
-    fra.me.REG[8] = fra.me.REG[8];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-    if (!once_value_5) {
-      fra.me.REG[8] = BOX_NativeString(" = VAL2OBJ(");
-      REGB0 = TAG_Int(11);
-      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-      once_value_5 = fra.me.REG[8];
-      register_static_object(&once_value_5);
-    } else fra.me.REG[8] = once_value_5;
-    fra.me.REG[8] = fra.me.REG[8];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    if (!once_value_6) {
-      fra.me.REG[8] = BOX_NativeString(")->vft[");
-      REGB0 = TAG_Int(7);
-      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-      once_value_6 = fra.me.REG[8];
-      register_static_object(&once_value_6);
-    } else fra.me.REG[8] = once_value_6;
-    fra.me.REG[8] = fra.me.REG[8];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
-    fra.me.REG[8] = CALL_compiling___compiling_base___MMGlobalClass___init_table_pos_id(fra.me.REG[8])(fra.me.REG[8]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    if (!once_value_7) {
-      fra.me.REG[8] = BOX_NativeString("].i;");
-      REGB0 = TAG_Int(4);
-      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-      once_value_7 = fra.me.REG[8];
-      register_static_object(&once_value_7);
-    } else fra.me.REG[8] = once_value_7;
-    fra.me.REG[8] = fra.me.REG[8];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-    /* compiling/compiling_global.nit:520 */
-    REGB0 = TAG_Int(3);
-    fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_8) {
-      fra.me.REG[8] = BOX_NativeString("if (init_table[");
-      REGB0 = TAG_Int(15);
-      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-      once_value_8 = fra.me.REG[8];
-      register_static_object(&once_value_8);
-    } else fra.me.REG[8] = once_value_8;
-    fra.me.REG[8] = fra.me.REG[8];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-    if (!once_value_9) {
-      fra.me.REG[8] = BOX_NativeString("]) return;");
-      REGB0 = TAG_Int(10);
-      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-      once_value_9 = fra.me.REG[8];
-      register_static_object(&once_value_9);
-    } else fra.me.REG[8] = once_value_9;
-    fra.me.REG[8] = fra.me.REG[8];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-    fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-  }
-  /* compiling/compiling_global.nit:523 */
-  fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 523);
-  }
-  fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-  /* compiling/compiling_global.nit:525 */
-  REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* compiling/compiling_global.nit:526 */
-    REGB0 = TAG_Int(3);
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_10) {
-      fra.me.REG[2] = BOX_NativeString("init_table[");
-      REGB0 = TAG_Int(11);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-      once_value_10 = fra.me.REG[2];
-      register_static_object(&once_value_10);
-    } else fra.me.REG[2] = once_value_10;
-    fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
-    if (!once_value_11) {
-      fra.me.REG[6] = BOX_NativeString("] = 1;");
-      REGB0 = TAG_Int(6);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-      once_value_11 = fra.me.REG[6];
-      register_static_object(&once_value_11);
-    } else fra.me.REG[6] = once_value_11;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
-    fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  }
-  /* compiling/compiling_global.nit:528 */
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* compiling/compiling_global.nit:529 */
-    if (!once_value_12) {
-      fra.me.REG[0] = BOX_NativeString("return;");
-      REGB0 = TAG_Int(7);
-      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      once_value_12 = fra.me.REG[0];
-      register_static_object(&once_value_12);
-    } else fra.me.REG[0] = once_value_12;
-    fra.me.REG[0] = fra.me.REG[0];
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  } else {
-    /* compiling/compiling_global.nit:531 */
-    REGB0 = TAG_Int(3);
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_13) {
-      fra.me.REG[6] = BOX_NativeString("return ");
-      REGB0 = TAG_Int(7);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-      once_value_13 = fra.me.REG[6];
-      register_static_object(&once_value_13);
-    } else fra.me.REG[6] = once_value_13;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    if (!once_value_14) {
-      fra.me.REG[3] = BOX_NativeString(";");
-      REGB0 = TAG_Int(1);
-      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-      once_value_14 = fra.me.REG[3];
-      register_static_object(&once_value_14);
-    } else fra.me.REG[3] = once_value_14;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  }
-  /* compiling/compiling_global.nit:533 */
-  CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* compiling/compiling_global.nit:534 */
-  if (!once_value_15) {
-    fra.me.REG[0] = BOX_NativeString("}");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    once_value_15 = fra.me.REG[0];
-    register_static_object(&once_value_15);
-  } else fra.me.REG[0] = once_value_15;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* compiling/compiling_global.nit:536 */
-  CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* compiling/compiling_global.nit:537 */
-  CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  stack_frame_head = fra.me.prev;
-  return;
-}