Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__separate_compiler.sep.1.c
index 494a26d..2846d5e 100644 (file)
@@ -1,10 +1,13 @@
 #include "nitc__separate_compiler.sep.0.h"
-/* method separate_compiler#ToolContext#opt_separate for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_separate for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_separate(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_separate].val; /* _opt_separate on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 24);
 fatal_exit(1);
@@ -13,12 +16,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_no_inline_intern for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_no_inline_intern for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_no_inline_intern(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_inline_intern].val; /* _opt_no_inline_intern on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 26);
 fatal_exit(1);
@@ -27,12 +33,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_no_union_attribute for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_no_union_attribute for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_no_union_attribute(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 28);
 fatal_exit(1);
@@ -41,12 +50,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_no_shortcut_equate for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_no_shortcut_equate for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_no_shortcut_equate(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_shortcut_equate].val; /* _opt_no_shortcut_equate on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 30);
 fatal_exit(1);
@@ -55,12 +67,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_no_tag_primitives for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_no_tag_primitives for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_no_tag_primitives(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_tag_primitives].val; /* _opt_no_tag_primitives on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 32);
 fatal_exit(1);
@@ -69,12 +84,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_colors_are_symbols for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_colors_are_symbols for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_colors_are_symbols(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_colors_are_symbols].val; /* _opt_colors_are_symbols on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colors_are_symbols");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 35);
 fatal_exit(1);
@@ -83,12 +101,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_trampoline_call for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_trampoline_call for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_trampoline_call(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_trampoline_call].val; /* _opt_trampoline_call on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 37);
 fatal_exit(1);
@@ -97,12 +118,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_guard_call for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_guard_call for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_guard_call(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_guard_call].val; /* _opt_guard_call on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 39);
 fatal_exit(1);
@@ -111,12 +135,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_substitute_monomorph for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_substitute_monomorph for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_substitute_monomorph(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_substitute_monomorph].val; /* _opt_substitute_monomorph on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 41);
 fatal_exit(1);
@@ -125,12 +152,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_link_boost for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_link_boost for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_link_boost(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_link_boost].val; /* _opt_link_boost on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_link_boost");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 43);
 fatal_exit(1);
@@ -139,12 +169,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_inline_coloring_numbers for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_inline_coloring_numbers for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_inline_coloring_numbers(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 46);
 fatal_exit(1);
@@ -153,12 +186,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_inline_some_methods for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_inline_some_methods for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_inline_some_methods(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_inline_some_methods].val; /* _opt_inline_some_methods on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 48);
 fatal_exit(1);
@@ -167,12 +203,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_direct_call_monomorph for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_direct_call_monomorph for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_direct_call_monomorph(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_direct_call_monomorph].val; /* _opt_direct_call_monomorph on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 50);
 fatal_exit(1);
@@ -181,12 +220,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_direct_call_monomorph0 for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_direct_call_monomorph0 for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_direct_call_monomorph0(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_direct_call_monomorph0].val; /* _opt_direct_call_monomorph0 on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph0");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 52);
 fatal_exit(1);
@@ -195,12 +237,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_skip_dead_methods for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_skip_dead_methods for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_skip_dead_methods(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 54);
 fatal_exit(1);
@@ -209,12 +254,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_semi_global for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_semi_global for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_semi_global(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_semi_global].val; /* _opt_semi_global on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 56);
 fatal_exit(1);
@@ -223,12 +271,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_colo_dead_methods for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_colo_dead_methods for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_colo_dead_methods(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_colo_dead_methods].val; /* _opt_colo_dead_methods on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 58);
 fatal_exit(1);
@@ -237,12 +288,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_tables_metrics for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_tables_metrics for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_tables_metrics(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_tables_metrics].val; /* _opt_tables_metrics on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 60);
 fatal_exit(1);
@@ -251,12 +305,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#opt_type_poset for (self: ToolContext): OptionBool */
+/* method separate_compiler$ToolContext$opt_type_poset for (self: ToolContext): OptionBool */
 val* nitc__separate_compiler___ToolContext___opt_type_poset(val* self) {
 val* var /* : OptionBool */;
 val* var1 /* : OptionBool */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_type_poset].val; /* _opt_type_poset on <self:ToolContext> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_type_poset");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 62);
 fatal_exit(1);
@@ -265,7 +322,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ToolContext#init for (self: ToolContext) */
+/* method separate_compiler$ToolContext$init for (self: ToolContext) */
 void nitc__separate_compiler___ToolContext___core__kernel__Object__init(val* self) {
 val* var /* : OptionContext */;
 val* var2 /* : OptionContext */;
@@ -349,11 +406,14 @@ val* var106 /* : NativeArray[Option] */;
 ((void(*)(val* self))(self->class->vft[COLOR_nitc__separate_compiler___ToolContext___core__kernel__Object__init]))(self); /* init on <self:ToolContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var2 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var = var2;
@@ -361,9 +421,12 @@ RET_LABEL1:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_separate (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_separate (self) on <self:ToolContext> */
 var5 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_separate].val; /* _opt_separate on <self:ToolContext> */
 if (unlikely(var5 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 24);
 fatal_exit(1);
@@ -374,21 +437,24 @@ RET_LABEL4:(void)0;
 }
 var6 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var6 = array_instance Array[Option] */
-var7 = NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option);
+var7 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var7)->values[0] = (val*) var3;
 {
 ((void(*)(val* self, val* p0, long p1))(var6->class->vft[COLOR_core__array__Array__with_native]))(var6, var7, 1l); /* with_native on <var6:Array[Option]>*/
 }
 }
 {
-opts___opts__OptionContext___add_option(var, var6); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
+opts___opts__OptionContext___add_option(var, var6); /* Direct call opts$OptionContext$add_option on <var:OptionContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var10 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var10 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var8 = var10;
@@ -396,9 +462,12 @@ RET_LABEL9:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_no_inline_intern (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_no_inline_intern (self) on <self:ToolContext> */
 var13 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_inline_intern].val; /* _opt_no_inline_intern on <self:ToolContext> */
 if (unlikely(var13 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 26);
 fatal_exit(1);
@@ -409,21 +478,24 @@ RET_LABEL12:(void)0;
 }
 var14 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var14 = array_instance Array[Option] */
-var15 = NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option);
+var15 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var15)->values[0] = (val*) var11;
 {
 ((void(*)(val* self, val* p0, long p1))(var14->class->vft[COLOR_core__array__Array__with_native]))(var14, var15, 1l); /* with_native on <var14:Array[Option]>*/
 }
 }
 {
-opts___opts__OptionContext___add_option(var8, var14); /* Direct call opts#OptionContext#add_option on <var8:OptionContext>*/
+opts___opts__OptionContext___add_option(var8, var14); /* Direct call opts$OptionContext$add_option on <var8:OptionContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var18 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var18 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var16 = var18;
@@ -431,9 +503,12 @@ RET_LABEL17:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_no_union_attribute (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_no_union_attribute (self) on <self:ToolContext> */
 var21 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on <self:ToolContext> */
 if (unlikely(var21 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 28);
 fatal_exit(1);
@@ -444,21 +519,24 @@ RET_LABEL20:(void)0;
 }
 var22 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var22 = array_instance Array[Option] */
-var23 = NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option);
+var23 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var23)->values[0] = (val*) var19;
 {
 ((void(*)(val* self, val* p0, long p1))(var22->class->vft[COLOR_core__array__Array__with_native]))(var22, var23, 1l); /* with_native on <var22:Array[Option]>*/
 }
 }
 {
-opts___opts__OptionContext___add_option(var16, var22); /* Direct call opts#OptionContext#add_option on <var16:OptionContext>*/
+opts___opts__OptionContext___add_option(var16, var22); /* Direct call opts$OptionContext$add_option on <var16:OptionContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var26 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var26 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var24 = var26;
@@ -466,9 +544,12 @@ RET_LABEL25:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_no_shortcut_equate (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_no_shortcut_equate (self) on <self:ToolContext> */
 var29 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_shortcut_equate].val; /* _opt_no_shortcut_equate on <self:ToolContext> */
 if (unlikely(var29 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 30);
 fatal_exit(1);
@@ -479,21 +560,24 @@ RET_LABEL28:(void)0;
 }
 var30 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var30 = array_instance Array[Option] */
-var31 = NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option);
+var31 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var31)->values[0] = (val*) var27;
 {
 ((void(*)(val* self, val* p0, long p1))(var30->class->vft[COLOR_core__array__Array__with_native]))(var30, var31, 1l); /* with_native on <var30:Array[Option]>*/
 }
 }
 {
-opts___opts__OptionContext___add_option(var24, var30); /* Direct call opts#OptionContext#add_option on <var24:OptionContext>*/
+opts___opts__OptionContext___add_option(var24, var30); /* Direct call opts$OptionContext$add_option on <var24:OptionContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var34 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var34 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var32 = var34;
@@ -501,9 +585,12 @@ RET_LABEL33:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_no_tag_primitives (self) on <self:ToolContext> */
 var37 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_tag_primitives].val; /* _opt_no_tag_primitives on <self:ToolContext> */
 if (unlikely(var37 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 32);
 fatal_exit(1);
@@ -514,21 +601,24 @@ RET_LABEL36:(void)0;
 }
 var38 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var38 = array_instance Array[Option] */
-var39 = NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option);
+var39 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var39)->values[0] = (val*) var35;
 {
 ((void(*)(val* self, val* p0, long p1))(var38->class->vft[COLOR_core__array__Array__with_native]))(var38, var39, 1l); /* with_native on <var38:Array[Option]>*/
 }
 }
 {
-opts___opts__OptionContext___add_option(var32, var38); /* Direct call opts#OptionContext#add_option on <var32:OptionContext>*/
+opts___opts__OptionContext___add_option(var32, var38); /* Direct call opts$OptionContext$add_option on <var32:OptionContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var42 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var42 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var40 = var42;
@@ -536,9 +626,12 @@ RET_LABEL41:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_colors_are_symbols (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_colors_are_symbols (self) on <self:ToolContext> */
 var45 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_colors_are_symbols].val; /* _opt_colors_are_symbols on <self:ToolContext> */
 if (unlikely(var45 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colors_are_symbols");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 35);
 fatal_exit(1);
@@ -548,9 +641,12 @@ RET_LABEL44:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_trampoline_call (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_trampoline_call (self) on <self:ToolContext> */
 var48 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_trampoline_call].val; /* _opt_trampoline_call on <self:ToolContext> */
 if (unlikely(var48 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 37);
 fatal_exit(1);
@@ -560,9 +656,12 @@ RET_LABEL47:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_guard_call (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_guard_call (self) on <self:ToolContext> */
 var51 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_guard_call].val; /* _opt_guard_call on <self:ToolContext> */
 if (unlikely(var51 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 39);
 fatal_exit(1);
@@ -572,9 +671,12 @@ RET_LABEL50:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph0 (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_direct_call_monomorph0 (self) on <self:ToolContext> */
 var54 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_direct_call_monomorph0].val; /* _opt_direct_call_monomorph0 on <self:ToolContext> */
 if (unlikely(var54 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph0");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 52);
 fatal_exit(1);
@@ -584,9 +686,12 @@ RET_LABEL53:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_substitute_monomorph (self) on <self:ToolContext> */
 var57 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_substitute_monomorph].val; /* _opt_substitute_monomorph on <self:ToolContext> */
 if (unlikely(var57 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 41);
 fatal_exit(1);
@@ -596,9 +701,12 @@ RET_LABEL56:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_link_boost (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_link_boost (self) on <self:ToolContext> */
 var60 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_link_boost].val; /* _opt_link_boost on <self:ToolContext> */
 if (unlikely(var60 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_link_boost");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 43);
 fatal_exit(1);
@@ -609,7 +717,7 @@ RET_LABEL59:(void)0;
 }
 var61 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var61 = array_instance Array[Option] */
-var62 = NEW_core__NativeArray(6l, &type_core__NativeArray__opts__Option);
+var62 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var62)->values[0] = (val*) var43;
 ((struct instance_core__NativeArray*)var62)->values[1] = (val*) var46;
 ((struct instance_core__NativeArray*)var62)->values[2] = (val*) var49;
@@ -621,14 +729,17 @@ var62 = NEW_core__NativeArray(6l, &type_core__NativeArray__opts__Option);
 }
 }
 {
-opts___opts__OptionContext___add_option(var40, var61); /* Direct call opts#OptionContext#add_option on <var40:OptionContext>*/
+opts___opts__OptionContext___add_option(var40, var61); /* Direct call opts$OptionContext$add_option on <var40:OptionContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var65 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var65 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var63 = var65;
@@ -636,9 +747,12 @@ RET_LABEL64:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_inline_coloring_numbers (self) on <self:ToolContext> */
 var68 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on <self:ToolContext> */
 if (unlikely(var68 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 46);
 fatal_exit(1);
@@ -648,9 +762,12 @@ RET_LABEL67:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_inline_some_methods (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_inline_some_methods (self) on <self:ToolContext> */
 var71 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_inline_some_methods].val; /* _opt_inline_some_methods on <self:ToolContext> */
 if (unlikely(var71 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 48);
 fatal_exit(1);
@@ -660,9 +777,12 @@ RET_LABEL70:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_direct_call_monomorph (self) on <self:ToolContext> */
 var74 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_direct_call_monomorph].val; /* _opt_direct_call_monomorph on <self:ToolContext> */
 if (unlikely(var74 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 50);
 fatal_exit(1);
@@ -672,9 +792,12 @@ RET_LABEL73:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_skip_dead_methods (self) on <self:ToolContext> */
 var77 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on <self:ToolContext> */
 if (unlikely(var77 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 54);
 fatal_exit(1);
@@ -684,9 +807,12 @@ RET_LABEL76:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_semi_global (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_semi_global (self) on <self:ToolContext> */
 var80 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_semi_global].val; /* _opt_semi_global on <self:ToolContext> */
 if (unlikely(var80 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 56);
 fatal_exit(1);
@@ -697,7 +823,7 @@ RET_LABEL79:(void)0;
 }
 var81 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var81 = array_instance Array[Option] */
-var82 = NEW_core__NativeArray(5l, &type_core__NativeArray__opts__Option);
+var82 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var82)->values[0] = (val*) var66;
 ((struct instance_core__NativeArray*)var82)->values[1] = (val*) var69;
 ((struct instance_core__NativeArray*)var82)->values[2] = (val*) var72;
@@ -708,14 +834,17 @@ var82 = NEW_core__NativeArray(5l, &type_core__NativeArray__opts__Option);
 }
 }
 {
-opts___opts__OptionContext___add_option(var63, var81); /* Direct call opts#OptionContext#add_option on <var63:OptionContext>*/
+opts___opts__OptionContext___add_option(var63, var81); /* Direct call opts$OptionContext$add_option on <var63:OptionContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var85 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var85 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var83 = var85;
@@ -723,9 +852,12 @@ RET_LABEL84:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_colo_dead_methods (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_colo_dead_methods (self) on <self:ToolContext> */
 var88 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_colo_dead_methods].val; /* _opt_colo_dead_methods on <self:ToolContext> */
 if (unlikely(var88 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 58);
 fatal_exit(1);
@@ -736,21 +868,24 @@ RET_LABEL87:(void)0;
 }
 var89 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var89 = array_instance Array[Option] */
-var90 = NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option);
+var90 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var90)->values[0] = (val*) var86;
 {
 ((void(*)(val* self, val* p0, long p1))(var89->class->vft[COLOR_core__array__Array__with_native]))(var89, var90, 1l); /* with_native on <var89:Array[Option]>*/
 }
 }
 {
-opts___opts__OptionContext___add_option(var83, var89); /* Direct call opts#OptionContext#add_option on <var83:OptionContext>*/
+opts___opts__OptionContext___add_option(var83, var89); /* Direct call opts$OptionContext$add_option on <var83:OptionContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var93 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var93 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var91 = var93;
@@ -758,9 +893,12 @@ RET_LABEL92:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_tables_metrics (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_tables_metrics (self) on <self:ToolContext> */
 var96 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_tables_metrics].val; /* _opt_tables_metrics on <self:ToolContext> */
 if (unlikely(var96 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 60);
 fatal_exit(1);
@@ -771,21 +909,24 @@ RET_LABEL95:(void)0;
 }
 var97 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var97 = array_instance Array[Option] */
-var98 = NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option);
+var98 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var98)->values[0] = (val*) var94;
 {
 ((void(*)(val* self, val* p0, long p1))(var97->class->vft[COLOR_core__array__Array__with_native]))(var97, var98, 1l); /* with_native on <var97:Array[Option]>*/
 }
 }
 {
-opts___opts__OptionContext___add_option(var91, var97); /* Direct call opts#OptionContext#add_option on <var91:OptionContext>*/
+opts___opts__OptionContext___add_option(var91, var97); /* Direct call opts$OptionContext$add_option on <var91:OptionContext>*/
 }
 {
-{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+{ /* Inline toolcontext$ToolContext$option_context (self) on <self:ToolContext> */
 var101 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
 if (unlikely(var101 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
 fatal_exit(1);
 }
 var99 = var101;
@@ -793,9 +934,12 @@ RET_LABEL100:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_type_poset (self) on <self:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_type_poset (self) on <self:ToolContext> */
 var104 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_type_poset].val; /* _opt_type_poset on <self:ToolContext> */
 if (unlikely(var104 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_type_poset");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 62);
 fatal_exit(1);
@@ -806,18 +950,18 @@ RET_LABEL103:(void)0;
 }
 var105 = NEW_core__Array(&type_core__Array__opts__Option);
 { /* var105 = array_instance Array[Option] */
-var106 = NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option);
+var106 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__opts__Option);
 ((struct instance_core__NativeArray*)var106)->values[0] = (val*) var102;
 {
 ((void(*)(val* self, val* p0, long p1))(var105->class->vft[COLOR_core__array__Array__with_native]))(var105, var106, 1l); /* with_native on <var105:Array[Option]>*/
 }
 }
 {
-opts___opts__OptionContext___add_option(var99, var105); /* Direct call opts#OptionContext#add_option on <var99:OptionContext>*/
+opts___opts__OptionContext___add_option(var99, var105); /* Direct call opts$OptionContext$add_option on <var99:OptionContext>*/
 }
 RET_LABEL:;
 }
-/* method separate_compiler#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
+/* method separate_compiler$ToolContext$process_options for (self: ToolContext, Sequence[String]) */
 void nitc__separate_compiler___ToolContext___process_options(val* self, val* p0) {
 val* var_args /* var args: Sequence[String] */;
 val* var_tc /* var tc: ToolContext */;
@@ -898,9 +1042,12 @@ var_args = p0;
 }
 var_tc = self;
 {
-{ /* Inline separate_compiler#ToolContext#opt_semi_global (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_semi_global (var_tc) on <var_tc:ToolContext> */
 var2 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_semi_global].val; /* _opt_semi_global on <var_tc:ToolContext> */
 if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 56);
 fatal_exit(1);
@@ -910,7 +1057,7 @@ RET_LABEL1:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var) on <var:OptionBool> */
+{ /* Inline opts$Option$value (var) on <var:OptionBool> */
 var5 = var->attrs[COLOR_opts__Option___value].val; /* _value on <var:OptionBool> */
 var3 = var5;
 RET_LABEL4:(void)0;
@@ -919,9 +1066,12 @@ RET_LABEL4:(void)0;
 var6 = (short int)((long)(var3)>>2);
 if (var6){
 {
-{ /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_inline_coloring_numbers (var_tc) on <var_tc:ToolContext> */
 var9 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on <var_tc:ToolContext> */
 if (unlikely(var9 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 46);
 fatal_exit(1);
@@ -931,7 +1081,7 @@ RET_LABEL8:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value= (var7,1) on <var7:OptionBool> */
+{ /* Inline opts$Option$value= (var7,1) on <var7:OptionBool> */
 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
 /* <1:Bool> isa VALUE */
 type_struct = var7->type->resolution_table->types[COLOR_opts__Option__VALUE];
@@ -954,9 +1104,12 @@ RET_LABEL10:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_inline_some_methods (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_inline_some_methods (var_tc) on <var_tc:ToolContext> */
 var15 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_inline_some_methods].val; /* _opt_inline_some_methods on <var_tc:ToolContext> */
 if (unlikely(var15 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 48);
 fatal_exit(1);
@@ -966,7 +1119,7 @@ RET_LABEL14:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value= (var13,1) on <var13:OptionBool> */
+{ /* Inline opts$Option$value= (var13,1) on <var13:OptionBool> */
 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
 /* <1:Bool> isa VALUE */
 type_struct20 = var13->type->resolution_table->types[COLOR_opts__Option__VALUE];
@@ -989,9 +1142,12 @@ RET_LABEL16:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_direct_call_monomorph (var_tc) on <var_tc:ToolContext> */
 var25 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_direct_call_monomorph].val; /* _opt_direct_call_monomorph on <var_tc:ToolContext> */
 if (unlikely(var25 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 50);
 fatal_exit(1);
@@ -1001,7 +1157,7 @@ RET_LABEL24:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value= (var23,1) on <var23:OptionBool> */
+{ /* Inline opts$Option$value= (var23,1) on <var23:OptionBool> */
 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
 /* <1:Bool> isa VALUE */
 type_struct30 = var23->type->resolution_table->types[COLOR_opts__Option__VALUE];
@@ -1024,9 +1180,12 @@ RET_LABEL26:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_skip_dead_methods (var_tc) on <var_tc:ToolContext> */
 var35 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on <var_tc:ToolContext> */
 if (unlikely(var35 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 54);
 fatal_exit(1);
@@ -1036,7 +1195,7 @@ RET_LABEL34:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value= (var33,1) on <var33:OptionBool> */
+{ /* Inline opts$Option$value= (var33,1) on <var33:OptionBool> */
 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
 /* <1:Bool> isa VALUE */
 type_struct40 = var33->type->resolution_table->types[COLOR_opts__Option__VALUE];
@@ -1061,9 +1220,12 @@ RET_LABEL36:(void)0;
 } else {
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_link_boost (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_link_boost (var_tc) on <var_tc:ToolContext> */
 var45 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_link_boost].val; /* _opt_link_boost on <var_tc:ToolContext> */
 if (unlikely(var45 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_link_boost");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 43);
 fatal_exit(1);
@@ -1073,7 +1235,7 @@ RET_LABEL44:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var43) on <var43:OptionBool> */
+{ /* Inline opts$Option$value (var43) on <var43:OptionBool> */
 var48 = var43->attrs[COLOR_opts__Option___value].val; /* _value on <var43:OptionBool> */
 var46 = var48;
 RET_LABEL47:(void)0;
@@ -1082,9 +1244,12 @@ RET_LABEL47:(void)0;
 var49 = (short int)((long)(var46)>>2);
 if (var49){
 {
-{ /* Inline separate_compiler#ToolContext#opt_colors_are_symbols (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_colors_are_symbols (var_tc) on <var_tc:ToolContext> */
 var52 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_colors_are_symbols].val; /* _opt_colors_are_symbols on <var_tc:ToolContext> */
 if (unlikely(var52 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colors_are_symbols");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 35);
 fatal_exit(1);
@@ -1094,7 +1259,7 @@ RET_LABEL51:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value= (var50,1) on <var50:OptionBool> */
+{ /* Inline opts$Option$value= (var50,1) on <var50:OptionBool> */
 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
 /* <1:Bool> isa VALUE */
 type_struct57 = var50->type->resolution_table->types[COLOR_opts__Option__VALUE];
@@ -1117,9 +1282,12 @@ RET_LABEL53:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_substitute_monomorph (var_tc) on <var_tc:ToolContext> */
 var62 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_substitute_monomorph].val; /* _opt_substitute_monomorph on <var_tc:ToolContext> */
 if (unlikely(var62 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 41);
 fatal_exit(1);
@@ -1129,7 +1297,7 @@ RET_LABEL61:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value= (var60,1) on <var60:OptionBool> */
+{ /* Inline opts$Option$value= (var60,1) on <var60:OptionBool> */
 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
 /* <1:Bool> isa VALUE */
 type_struct67 = var60->type->resolution_table->types[COLOR_opts__Option__VALUE];
@@ -1154,9 +1322,12 @@ RET_LABEL63:(void)0;
 } else {
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_substitute_monomorph (var_tc) on <var_tc:ToolContext> */
 var72 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_substitute_monomorph].val; /* _opt_substitute_monomorph on <var_tc:ToolContext> */
 if (unlikely(var72 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 41);
 fatal_exit(1);
@@ -1166,7 +1337,7 @@ RET_LABEL71:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var70) on <var70:OptionBool> */
+{ /* Inline opts$Option$value (var70) on <var70:OptionBool> */
 var75 = var70->attrs[COLOR_opts__Option___value].val; /* _value on <var70:OptionBool> */
 var73 = var75;
 RET_LABEL74:(void)0;
@@ -1175,9 +1346,12 @@ RET_LABEL74:(void)0;
 var76 = (short int)((long)(var73)>>2);
 if (var76){
 {
-{ /* Inline separate_compiler#ToolContext#opt_trampoline_call (var_tc) on <var_tc:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_trampoline_call (var_tc) on <var_tc:ToolContext> */
 var79 = var_tc->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_trampoline_call].val; /* _opt_trampoline_call on <var_tc:ToolContext> */
 if (unlikely(var79 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 37);
 fatal_exit(1);
@@ -1187,7 +1361,7 @@ RET_LABEL78:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value= (var77,1) on <var77:OptionBool> */
+{ /* Inline opts$Option$value= (var77,1) on <var77:OptionBool> */
 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
 /* <1:Bool> isa VALUE */
 type_struct84 = var77->type->resolution_table->types[COLOR_opts__Option__VALUE];
@@ -1213,7 +1387,7 @@ RET_LABEL80:(void)0;
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompilerPhase#process_mainmodule for (self: SeparateCompilerPhase, MModule, SequenceRead[MModule]) */
+/* method separate_compiler$SeparateCompilerPhase$process_mainmodule for (self: SeparateCompilerPhase, MModule, SequenceRead[MModule]) */
 void nitc___nitc__SeparateCompilerPhase___nitc__modelbuilder__Phase__process_mainmodule(val* self, val* p0, val* p1) {
 val* var_mainmodule /* var mainmodule: MModule */;
 val* var_given_mmodules /* var given_mmodules: SequenceRead[MModule] */;
@@ -1234,11 +1408,14 @@ val* var_analysis /* var analysis: RapidTypeAnalysis */;
 var_mainmodule = p0;
 var_given_mmodules = p1;
 {
-{ /* Inline phase#Phase#toolcontext (self) on <self:SeparateCompilerPhase> */
+{ /* Inline phase$Phase$toolcontext (self) on <self:SeparateCompilerPhase> */
 var2 = self->attrs[COLOR_nitc__phase__Phase___toolcontext].val; /* _toolcontext on <self:SeparateCompilerPhase> */
 if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 200);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 210);
 fatal_exit(1);
 }
 var = var2;
@@ -1246,9 +1423,12 @@ RET_LABEL1:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_separate (var) on <var:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_separate (var) on <var:ToolContext> */
 var5 = var->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_separate].val; /* _opt_separate on <var:ToolContext> */
 if (unlikely(var5 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 24);
 fatal_exit(1);
@@ -1258,7 +1438,7 @@ RET_LABEL4:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var3) on <var3:OptionBool> */
+{ /* Inline opts$Option$value (var3) on <var3:OptionBool> */
 var8 = var3->attrs[COLOR_opts__Option___value].val; /* _value on <var3:OptionBool> */
 var6 = var8;
 RET_LABEL7:(void)0;
@@ -1271,11 +1451,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline phase#Phase#toolcontext (self) on <self:SeparateCompilerPhase> */
+{ /* Inline phase$Phase$toolcontext (self) on <self:SeparateCompilerPhase> */
 var13 = self->attrs[COLOR_nitc__phase__Phase___toolcontext].val; /* _toolcontext on <self:SeparateCompilerPhase> */
 if (unlikely(var13 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 200);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 210);
 fatal_exit(1);
 }
 var11 = var13;
@@ -1291,11 +1474,11 @@ var15 = nitc__rapid_type_analysis___ModelBuilder___do_rapid_type_analysis(var_mo
 }
 var_analysis = var15;
 {
-nitc__separate_compiler___ModelBuilder___run_separate_compiler(var_modelbuilder, var_mainmodule, var_analysis); /* Direct call separate_compiler#ModelBuilder#run_separate_compiler on <var_modelbuilder:ModelBuilder>*/
+nitc__separate_compiler___ModelBuilder___run_separate_compiler(var_modelbuilder, var_mainmodule, var_analysis); /* Direct call separate_compiler$ModelBuilder$run_separate_compiler on <var_modelbuilder:ModelBuilder>*/
 }
 RET_LABEL:;
 }
-/* method separate_compiler#ModelBuilder#run_separate_compiler for (self: ModelBuilder, MModule, nullable RapidTypeAnalysis) */
+/* method separate_compiler$ModelBuilder$run_separate_compiler for (self: ModelBuilder, MModule, nullable RapidTypeAnalysis) */
 void nitc__separate_compiler___ModelBuilder___run_separate_compiler(val* self, val* p0, val* p1) {
 val* var_mainmodule /* var mainmodule: MModule */;
 val* var_runtime_type_analysis /* var runtime_type_analysis: nullable RapidTypeAnalysis */;
@@ -1307,43 +1490,55 @@ val* var4 /* : ToolContext */;
 val* var6 /* : ToolContext */;
 static val* varonce;
 val* var7 /* : String */;
-char* var8 /* : NativeString */;
+char* var8 /* : CString */;
 val* var9 /* : String */;
-val* var10 /* : SeparateCompiler */;
+val* var10 /* : nullable Int */;
+val* var11 /* : nullable Int */;
+val* var12 /* : nullable Bool */;
+val* var13 /* : nullable Bool */;
+val* var14 /* : SeparateCompiler */;
 val* var_compiler /* var compiler: SeparateCompiler */;
-val* var11 /* : Sys */;
-long var12 /* : Int */;
-long var14 /* : Int */;
+val* var15 /* : Sys */;
+long var16 /* : Int */;
+long var18 /* : Int */;
 long var_time1 /* var time1: Int */;
-val* var15 /* : ToolContext */;
-val* var17 /* : ToolContext */;
-val* var19 /* : NativeArray[String] */;
-static val* varonce18;
-static val* varonce20;
-val* var21 /* : String */;
-char* var22 /* : NativeString */;
-val* var23 /* : String */;
+val* var19 /* : ToolContext */;
+val* var21 /* : ToolContext */;
+val* var23 /* : NativeArray[String] */;
+static val* varonce22;
 static val* varonce24;
 val* var25 /* : String */;
-char* var26 /* : NativeString */;
+char* var26 /* : CString */;
 val* var27 /* : String */;
-long var28 /* : Int */;
-short int var30 /* : Bool */;
+val* var28 /* : nullable Int */;
+val* var29 /* : nullable Int */;
+val* var30 /* : nullable Bool */;
+val* var31 /* : nullable Bool */;
+static val* varonce32;
+val* var33 /* : String */;
+char* var34 /* : CString */;
+val* var35 /* : String */;
+val* var36 /* : nullable Int */;
+val* var37 /* : nullable Int */;
+val* var38 /* : nullable Bool */;
+val* var39 /* : nullable Bool */;
+long var40 /* : Int */;
+short int var42 /* : Bool */;
 int cltype;
 int idtype;
 const char* var_class_name;
-long var31 /* : Int */;
-val* var32 /* : String */;
-val* var33 /* : String */;
+long var43 /* : Int */;
+val* var44 /* : String */;
+val* var45 /* : String */;
 var_mainmodule = p0;
 var_runtime_type_analysis = p1;
 var = glob_sys;
 {
-{ /* Inline time#Sys#get_time (var) on <var:Sys> */
+{ /* Inline time$Sys$get_time (var) on <var:Sys> */
 struct nitni_instance* var_for_c_0;
 var_for_c_0 = nit_alloc(sizeof(struct nitni_instance));
 var_for_c_0->value = var;
-var3 = time___Sys_get_time___impl(var_for_c_0);
+var3 = core__time___Sys_get_time___impl(var_for_c_0);
 var1 = var3;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -1351,9 +1546,12 @@ RET_LABEL2:(void)0;
 }
 var_time0 = var1;
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
 var6 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
 if (unlikely(var6 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
@@ -1366,114 +1564,129 @@ if (likely(varonce!=NULL)) {
 var7 = varonce;
 } else {
 var8 = "*** GENERATING C ***";
-var9 = core__flat___NativeString___to_s_full(var8, 20l, 20l);
+var10 = (val*)(20l<<2|1);
+var11 = (val*)(20l<<2|1);
+var12 = (val*)((long)(0)<<2|3);
+var13 = (val*)((long)(0)<<2|3);
+var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
 var7 = var9;
 varonce = var7;
 }
 {
-nitc___nitc__ToolContext___info(var4, var7, 1l); /* Direct call toolcontext#ToolContext#info on <var4:ToolContext>*/
+nitc___nitc__ToolContext___info(var4, var7, 1l); /* Direct call toolcontext$ToolContext$info on <var4:ToolContext>*/
 }
-var10 = NEW_nitc__SeparateCompiler(&type_nitc__SeparateCompiler);
+var14 = NEW_nitc__SeparateCompiler(&type_nitc__SeparateCompiler);
 {
-((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__mainmodule_61d]))(var10, var_mainmodule); /* mainmodule= on <var10:SeparateCompiler>*/
+((void(*)(val* self, val* p0))(var14->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__mainmodule_61d]))(var14, var_mainmodule); /* mainmodule= on <var14:SeparateCompiler>*/
 }
 {
-((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__modelbuilder_61d]))(var10, self); /* modelbuilder= on <var10:SeparateCompiler>*/
+((void(*)(val* self, val* p0))(var14->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__modelbuilder_61d]))(var14, self); /* modelbuilder= on <var14:SeparateCompiler>*/
 }
 {
-((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__separate_compiler__SeparateCompiler__runtime_type_analysis_61d]))(var10, var_runtime_type_analysis); /* runtime_type_analysis= on <var10:SeparateCompiler>*/
+((void(*)(val* self, val* p0))(var14->class->vft[COLOR_nitc__separate_compiler__SeparateCompiler__runtime_type_analysis_61d]))(var14, var_runtime_type_analysis); /* runtime_type_analysis= on <var14:SeparateCompiler>*/
 }
 {
-((void(*)(val* self))(var10->class->vft[COLOR_core__kernel__Object__init]))(var10); /* init on <var10:SeparateCompiler>*/
+((void(*)(val* self))(var14->class->vft[COLOR_core__kernel__Object__init]))(var14); /* init on <var14:SeparateCompiler>*/
 }
-var_compiler = var10;
+var_compiler = var14;
 {
-nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__do_compilation(var_compiler); /* Direct call separate_compiler#SeparateCompiler#do_compilation on <var_compiler:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__do_compilation(var_compiler); /* Direct call separate_compiler$SeparateCompiler$do_compilation on <var_compiler:SeparateCompiler>*/
 }
 {
-nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__display_stats(var_compiler); /* Direct call separate_compiler#SeparateCompiler#display_stats on <var_compiler:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__display_stats(var_compiler); /* Direct call separate_compiler$SeparateCompiler$display_stats on <var_compiler:SeparateCompiler>*/
 }
-var11 = glob_sys;
+var15 = glob_sys;
 {
-{ /* Inline time#Sys#get_time (var11) on <var11:Sys> */
+{ /* Inline time$Sys$get_time (var15) on <var15:Sys> */
 struct nitni_instance* var_for_c_0;
 var_for_c_0 = nit_alloc(sizeof(struct nitni_instance));
-var_for_c_0->value = var11;
-var14 = time___Sys_get_time___impl(var_for_c_0);
-var12 = var14;
-goto RET_LABEL13;
-RET_LABEL13:(void)0;
+var_for_c_0->value = var15;
+var18 = core__time___Sys_get_time___impl(var_for_c_0);
+var16 = var18;
+goto RET_LABEL17;
+RET_LABEL17:(void)0;
 }
 }
-var_time1 = var12;
+var_time1 = var16;
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
-var17 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
-if (unlikely(var17 == NULL)) {
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
+var21 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
+if (unlikely(var21 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
 }
-var15 = var17;
-RET_LABEL16:(void)0;
-}
+var19 = var21;
+RET_LABEL20:(void)0;
 }
-if (unlikely(varonce18==NULL)) {
-var19 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce20!=NULL)) {
-var21 = varonce20;
-} else {
-var22 = "*** END GENERATING C: ";
-var23 = core__flat___NativeString___to_s_full(var22, 22l, 22l);
-var21 = var23;
-varonce20 = var21;
 }
-((struct instance_core__NativeArray*)var19)->values[0]=var21;
+if (unlikely(varonce22==NULL)) {
+var23 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
 if (likely(varonce24!=NULL)) {
 var25 = varonce24;
 } else {
-var26 = " ***";
-var27 = core__flat___NativeString___to_s_full(var26, 4l, 4l);
+var26 = "*** END GENERATING C: ";
+var28 = (val*)(22l<<2|1);
+var29 = (val*)(22l<<2|1);
+var30 = (val*)((long)(0)<<2|3);
+var31 = (val*)((long)(0)<<2|3);
+var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
 var25 = var27;
 varonce24 = var25;
 }
-((struct instance_core__NativeArray*)var19)->values[2]=var25;
+((struct instance_core__NativeArray*)var23)->values[0]=var25;
+if (likely(varonce32!=NULL)) {
+var33 = varonce32;
 } else {
-var19 = varonce18;
-varonce18 = NULL;
+var34 = " ***";
+var36 = (val*)(4l<<2|1);
+var37 = (val*)(4l<<2|1);
+var38 = (val*)((long)(0)<<2|3);
+var39 = (val*)((long)(0)<<2|3);
+var35 = core__flat___CString___to_s_unsafe(var34, var36, var37, var38, var39);
+var33 = var35;
+varonce32 = var33;
+}
+((struct instance_core__NativeArray*)var23)->values[2]=var33;
+} else {
+var23 = varonce22;
+varonce22 = NULL;
 }
 {
-{ /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
+{ /* Inline kernel$Int$- (var_time1,var_time0) on <var_time1:Int> */
 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
 /* <var_time0:Int> isa OTHER */
-var30 = 1; /* easy <var_time0:Int> isa OTHER*/
-if (unlikely(!var30)) {
+var42 = 1; /* easy <var_time0:Int> isa OTHER*/
+if (unlikely(!var42)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
-var31 = var_time1 - var_time0;
-var28 = var31;
-goto RET_LABEL29;
-RET_LABEL29:(void)0;
+var43 = var_time1 - var_time0;
+var40 = var43;
+goto RET_LABEL41;
+RET_LABEL41:(void)0;
 }
 }
-var32 = core__flat___Int___core__abstract_text__Object__to_s(var28);
-((struct instance_core__NativeArray*)var19)->values[1]=var32;
+var44 = core__flat___Int___core__abstract_text__Object__to_s(var40);
+((struct instance_core__NativeArray*)var23)->values[1]=var44;
 {
-var33 = ((val*(*)(val* self))(var19->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var19); /* native_to_s on <var19:NativeArray[String]>*/
+var45 = ((val*(*)(val* self))(var23->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var23); /* native_to_s on <var23:NativeArray[String]>*/
 }
-varonce18 = var19;
+varonce22 = var23;
 {
-nitc___nitc__ToolContext___info(var15, var33, 2l); /* Direct call toolcontext#ToolContext#info on <var15:ToolContext>*/
+nitc___nitc__ToolContext___info(var19, var45, 2l); /* Direct call toolcontext$ToolContext$info on <var19:ToolContext>*/
 }
 {
-nitc__abstract_compiler___ModelBuilder___write_and_make(self, var_compiler); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:ModelBuilder>*/
+nitc__abstract_compiler___ModelBuilder___write_and_make(self, var_compiler); /* Direct call abstract_compiler$ModelBuilder$write_and_make on <self:ModelBuilder>*/
 }
 RET_LABEL:;
 }
-/* method separate_compiler#ModelBuilder#nb_invok_by_tables for (self: ModelBuilder): Int */
+/* method separate_compiler$ModelBuilder$nb_invok_by_tables for (self: ModelBuilder): Int */
 long nitc__separate_compiler___ModelBuilder___nb_invok_by_tables(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -1482,12 +1695,12 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ModelBuilder#nb_invok_by_tables= for (self: ModelBuilder, Int) */
+/* method separate_compiler$ModelBuilder$nb_invok_by_tables= for (self: ModelBuilder, Int) */
 void nitc__separate_compiler___ModelBuilder___nb_invok_by_tables_61d(val* self, long p0) {
 self->attrs[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_tables].l = p0; /* _nb_invok_by_tables on <self:ModelBuilder> */
 RET_LABEL:;
 }
-/* method separate_compiler#ModelBuilder#nb_invok_by_direct for (self: ModelBuilder): Int */
+/* method separate_compiler$ModelBuilder$nb_invok_by_direct for (self: ModelBuilder): Int */
 long nitc__separate_compiler___ModelBuilder___nb_invok_by_direct(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -1496,12 +1709,12 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ModelBuilder#nb_invok_by_direct= for (self: ModelBuilder, Int) */
+/* method separate_compiler$ModelBuilder$nb_invok_by_direct= for (self: ModelBuilder, Int) */
 void nitc__separate_compiler___ModelBuilder___nb_invok_by_direct_61d(val* self, long p0) {
 self->attrs[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_direct].l = p0; /* _nb_invok_by_direct on <self:ModelBuilder> */
 RET_LABEL:;
 }
-/* method separate_compiler#ModelBuilder#nb_invok_by_inline for (self: ModelBuilder): Int */
+/* method separate_compiler$ModelBuilder$nb_invok_by_inline for (self: ModelBuilder): Int */
 long nitc__separate_compiler___ModelBuilder___nb_invok_by_inline(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -1510,12 +1723,12 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#ModelBuilder#nb_invok_by_inline= for (self: ModelBuilder, Int) */
+/* method separate_compiler$ModelBuilder$nb_invok_by_inline= for (self: ModelBuilder, Int) */
 void nitc__separate_compiler___ModelBuilder___nb_invok_by_inline_61d(val* self, long p0) {
 self->attrs[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_inline].l = p0; /* _nb_invok_by_inline on <self:ModelBuilder> */
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: SeparateCompiler): nullable RapidTypeAnalysis */
+/* method separate_compiler$SeparateCompiler$runtime_type_analysis for (self: SeparateCompiler): nullable RapidTypeAnalysis */
 val* nitc___nitc__SeparateCompiler___runtime_type_analysis(val* self) {
 val* var /* : nullable RapidTypeAnalysis */;
 val* var1 /* : nullable RapidTypeAnalysis */;
@@ -1524,17 +1737,20 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: SeparateCompiler, nullable RapidTypeAnalysis) */
+/* method separate_compiler$SeparateCompiler$runtime_type_analysis= for (self: SeparateCompiler, nullable RapidTypeAnalysis) */
 void nitc___nitc__SeparateCompiler___runtime_type_analysis_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val = p0; /* _runtime_type_analysis on <self:SeparateCompiler> */
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#undead_types for (self: SeparateCompiler): Set[MType] */
+/* method separate_compiler$SeparateCompiler$undead_types for (self: SeparateCompiler): Set[MType] */
 val* nitc___nitc__SeparateCompiler___undead_types(val* self) {
 val* var /* : Set[MType] */;
 val* var1 /* : Set[MType] */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on <self:SeparateCompiler> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 146);
 fatal_exit(1);
@@ -1543,12 +1759,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: SeparateCompiler): Map[MClassDef, Set[MType]] */
+/* method separate_compiler$SeparateCompiler$live_unresolved_types for (self: SeparateCompiler): Map[MClassDef, Set[MType]] */
 val* nitc___nitc__SeparateCompiler___live_unresolved_types(val* self) {
 val* var /* : Map[MClassDef, Set[MType]] */;
 val* var1 /* : Map[MClassDef, Set[MType]] */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on <self:SeparateCompiler> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 147);
 fatal_exit(1);
@@ -1557,12 +1776,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#type_ids for (self: SeparateCompiler): Map[MType, Int] */
+/* method separate_compiler$SeparateCompiler$type_ids for (self: SeparateCompiler): Map[MType, Int] */
 val* nitc___nitc__SeparateCompiler___type_ids(val* self) {
 val* var /* : Map[MType, Int] */;
 val* var1 /* : Map[MType, Int] */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on <self:SeparateCompiler> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 149);
 fatal_exit(1);
@@ -1571,17 +1793,20 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#type_ids= for (self: SeparateCompiler, Map[MType, Int]) */
+/* method separate_compiler$SeparateCompiler$type_ids= for (self: SeparateCompiler, Map[MType, Int]) */
 void nitc___nitc__SeparateCompiler___type_ids_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val = p0; /* _type_ids on <self:SeparateCompiler> */
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#type_colors for (self: SeparateCompiler): Map[MType, Int] */
+/* method separate_compiler$SeparateCompiler$type_colors for (self: SeparateCompiler): Map[MType, Int] */
 val* nitc___nitc__SeparateCompiler___type_colors(val* self) {
 val* var /* : Map[MType, Int] */;
 val* var1 /* : Map[MType, Int] */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors].val; /* _type_colors on <self:SeparateCompiler> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 150);
 fatal_exit(1);
@@ -1590,17 +1815,20 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#type_colors= for (self: SeparateCompiler, Map[MType, Int]) */
+/* method separate_compiler$SeparateCompiler$type_colors= for (self: SeparateCompiler, Map[MType, Int]) */
 void nitc___nitc__SeparateCompiler___type_colors_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors].val = p0; /* _type_colors on <self:SeparateCompiler> */
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#opentype_colors for (self: SeparateCompiler): Map[MType, Int] */
+/* method separate_compiler$SeparateCompiler$opentype_colors for (self: SeparateCompiler): Map[MType, Int] */
 val* nitc___nitc__SeparateCompiler___opentype_colors(val* self) {
 val* var /* : Map[MType, Int] */;
 val* var1 /* : Map[MType, Int] */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on <self:SeparateCompiler> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 151);
 fatal_exit(1);
@@ -1609,20 +1837,24 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#opentype_colors= for (self: SeparateCompiler, Map[MType, Int]) */
+/* method separate_compiler$SeparateCompiler$opentype_colors= for (self: SeparateCompiler, Map[MType, Int]) */
 void nitc___nitc__SeparateCompiler___opentype_colors_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors].val = p0; /* _opentype_colors on <self:SeparateCompiler> */
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#init for (self: SeparateCompiler) */
+/* method separate_compiler$SeparateCompiler$init for (self: SeparateCompiler) */
 void nitc___nitc__SeparateCompiler___core__kernel__Object__init(val* self) {
 static val* varonce;
 val* var /* : String */;
-char* var1 /* : NativeString */;
+char* var1 /* : CString */;
 val* var2 /* : String */;
-val* var3 /* : CodeFile */;
+val* var3 /* : nullable Int */;
+val* var4 /* : nullable Int */;
+val* var5 /* : nullable Bool */;
+val* var6 /* : nullable Bool */;
+val* var7 /* : CodeFile */;
 val* var_file /* var file: CodeFile */;
-val* var4 /* : CodeWriter */;
+val* var8 /* : CodeWriter */;
 {
 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__SeparateCompiler___core__kernel__Object__init]))(self); /* init on <self:SeparateCompiler>*/
 }
@@ -1630,33 +1862,37 @@ if (likely(varonce!=NULL)) {
 var = varonce;
 } else {
 var1 = "nit.common";
-var2 = core__flat___NativeString___to_s_full(var1, 10l, 10l);
+var3 = (val*)(10l<<2|1);
+var4 = (val*)(10l<<2|1);
+var5 = (val*)((long)(0)<<2|3);
+var6 = (val*)((long)(0)<<2|3);
+var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
 var = var2;
 varonce = var;
 }
 {
-var3 = nitc___nitc__AbstractCompiler___new_file(self, var);
+var7 = nitc___nitc__AbstractCompiler___new_file(self, var);
 }
-var_file = var3;
-var4 = NEW_nitc__CodeWriter(&type_nitc__CodeWriter);
+var_file = var7;
+var8 = NEW_nitc__CodeWriter(&type_nitc__CodeWriter);
 {
-((void(*)(val* self, val* p0))(var4->class->vft[COLOR_nitc__abstract_compiler__CodeWriter__file_61d]))(var4, var_file); /* file= on <var4:CodeWriter>*/
+((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nitc__abstract_compiler__CodeWriter__file_61d]))(var8, var_file); /* file= on <var8:CodeWriter>*/
 }
 {
-((void(*)(val* self))(var4->class->vft[COLOR_core__kernel__Object__init]))(var4); /* init on <var4:CodeWriter>*/
+((void(*)(val* self))(var8->class->vft[COLOR_core__kernel__Object__init]))(var8); /* init on <var8:CodeWriter>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header= (self,var4) on <self:SeparateCompiler> */
-self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val = var4; /* _header on <self:SeparateCompiler> */
-RET_LABEL5:(void)0;
+{ /* Inline abstract_compiler$AbstractCompiler$header= (self,var8) on <self:SeparateCompiler> */
+self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val = var8; /* _header on <self:SeparateCompiler> */
+RET_LABEL9:(void)0;
 }
 }
 {
-nitc___nitc__SeparateCompiler___compile_box_kinds(self); /* Direct call separate_compiler#SeparateCompiler#compile_box_kinds on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_box_kinds(self); /* Direct call separate_compiler$SeparateCompiler$compile_box_kinds on <self:SeparateCompiler>*/
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#do_compilation for (self: SeparateCompiler) */
+/* method separate_compiler$SeparateCompiler$do_compilation for (self: SeparateCompiler) */
 void nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__do_compilation(val* self) {
 val* var_compiler /* var compiler: SeparateCompiler */;
 val* var /* : MModule */;
@@ -1669,101 +1905,132 @@ val* var7 /* : ToolContext */;
 val* var9 /* : ToolContext */;
 static val* varonce;
 val* var10 /* : String */;
-char* var11 /* : NativeString */;
+char* var11 /* : CString */;
 val* var12 /* : String */;
-val* var14 /* : NativeArray[String] */;
-static val* varonce13;
-static val* varonce15;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-val* var18 /* : String */;
-val* var19 /* : String */;
-val* var20 /* : CodeFile */;
-val* var21 /* : MModule */;
-val* var23 /* : MModule */;
-val* var24 /* : POSetElement[MModule] */;
-val* var26 /* : POSetElement[MModule] */;
-val* var27 /* : Collection[nullable Object] */;
+val* var13 /* : nullable Int */;
+val* var14 /* : nullable Int */;
+val* var15 /* : nullable Bool */;
+val* var16 /* : nullable Bool */;
+val* var18 /* : NativeArray[String] */;
+static val* varonce17;
+static val* varonce19;
+val* var20 /* : String */;
+char* var21 /* : CString */;
+val* var22 /* : String */;
+val* var23 /* : nullable Int */;
+val* var24 /* : nullable Int */;
+val* var25 /* : nullable Bool */;
+val* var26 /* : nullable Bool */;
+val* var27 /* : String */;
+val* var28 /* : CodeFile */;
+val* var29 /* : MModule */;
+val* var31 /* : MModule */;
+val* var32 /* : POSetElement[MModule] */;
+val* var34 /* : POSetElement[MModule] */;
+val* var35 /* : Collection[nullable Object] */;
 val* var_ /* var : Collection[MModule] */;
-val* var28 /* : Iterator[nullable Object] */;
-val* var_29 /* var : Iterator[MModule] */;
-short int var30 /* : Bool */;
-val* var31 /* : nullable Object */;
-val* var_m /* var m: MModule */;
-val* var32 /* : Array[MClass] */;
-val* var34 /* : Array[MClass] */;
-val* var_35 /* var : Array[MClass] */;
-val* var36 /* : IndexedIterator[nullable Object] */;
-val* var_37 /* var : IndexedIterator[MClass] */;
+val* var36 /* : Iterator[nullable Object] */;
+val* var_37 /* var : Iterator[MModule] */;
 short int var38 /* : Bool */;
-val* var40 /* : nullable Object */;
+val* var39 /* : nullable Object */;
+val* var_m /* var m: MModule */;
+val* var40 /* : Array[MClass] */;
+val* var42 /* : Array[MClass] */;
+val* var_43 /* var : Array[MClass] */;
+val* var44 /* : IndexedIterator[nullable Object] */;
+val* var_45 /* var : IndexedIterator[MClass] */;
+short int var46 /* : Bool */;
+val* var48 /* : nullable Object */;
 val* var_mclass /* var mclass: MClass */;
-val* var42 /* : NativeArray[String] */;
-static val* varonce41;
-static val* varonce43;
-val* var44 /* : String */;
-char* var45 /* : NativeString */;
-val* var46 /* : String */;
-val* var47 /* : String */;
-val* var48 /* : CodeFile */;
-val* var49 /* : MModule */;
-val* var51 /* : MModule */;
-val* var52 /* : POSetElement[MModule] */;
-val* var54 /* : POSetElement[MModule] */;
-val* var55 /* : Collection[nullable Object] */;
-val* var_56 /* var : Collection[MModule] */;
-val* var57 /* : Iterator[nullable Object] */;
-val* var_58 /* var : Iterator[MModule] */;
-short int var59 /* : Bool */;
-val* var61 /* : nullable Object */;
-val* var_m62 /* var m: MModule */;
-val* var63 /* : ModelBuilder */;
-val* var65 /* : ModelBuilder */;
-val* var66 /* : ToolContext */;
-val* var68 /* : ToolContext */;
-val* var70 /* : NativeArray[String] */;
-static val* varonce69;
-static val* varonce71;
-val* var72 /* : String */;
-char* var73 /* : NativeString */;
-val* var74 /* : String */;
-val* var75 /* : String */;
-val* var76 /* : String */;
-val* var78 /* : NativeArray[String] */;
-static val* varonce77;
-static val* varonce79;
-val* var80 /* : String */;
-char* var81 /* : NativeString */;
-val* var82 /* : String */;
-val* var83 /* : String */;
+val* var50 /* : NativeArray[String] */;
+static val* varonce49;
+static val* varonce51;
+val* var52 /* : String */;
+char* var53 /* : CString */;
+val* var54 /* : String */;
+val* var55 /* : nullable Int */;
+val* var56 /* : nullable Int */;
+val* var57 /* : nullable Bool */;
+val* var58 /* : nullable Bool */;
+val* var59 /* : String */;
+val* var60 /* : CodeFile */;
+val* var61 /* : MModule */;
+val* var63 /* : MModule */;
+val* var64 /* : POSetElement[MModule] */;
+val* var66 /* : POSetElement[MModule] */;
+val* var67 /* : Collection[nullable Object] */;
+val* var_68 /* var : Collection[MModule] */;
+val* var69 /* : Iterator[nullable Object] */;
+val* var_70 /* var : Iterator[MModule] */;
+short int var71 /* : Bool */;
+val* var73 /* : nullable Object */;
+val* var_m74 /* var m: MModule */;
+val* var75 /* : ModelBuilder */;
+val* var77 /* : ModelBuilder */;
+val* var78 /* : ToolContext */;
+val* var80 /* : ToolContext */;
+val* var82 /* : NativeArray[String] */;
+static val* varonce81;
+static val* varonce83;
 val* var84 /* : String */;
-val* var85 /* : CodeFile */;
-val* var86 /* : ModelBuilder */;
-val* var88 /* : ModelBuilder */;
-val* var89 /* : ToolContext */;
-val* var91 /* : ToolContext */;
-static val* varonce92;
-val* var93 /* : String */;
-char* var94 /* : NativeString */;
-val* var95 /* : String */;
-val* var97 /* : NativeArray[String] */;
-static val* varonce96;
-static val* varonce98;
-val* var99 /* : String */;
-char* var100 /* : NativeString */;
-val* var101 /* : String */;
-val* var102 /* : String */;
-val* var103 /* : CodeFile */;
+char* var85 /* : CString */;
+val* var86 /* : String */;
+val* var87 /* : nullable Int */;
+val* var88 /* : nullable Int */;
+val* var89 /* : nullable Bool */;
+val* var90 /* : nullable Bool */;
+val* var91 /* : String */;
+val* var92 /* : String */;
+val* var94 /* : NativeArray[String] */;
+static val* varonce93;
+static val* varonce95;
+val* var96 /* : String */;
+char* var97 /* : CString */;
+val* var98 /* : String */;
+val* var99 /* : nullable Int */;
+val* var100 /* : nullable Int */;
+val* var101 /* : nullable Bool */;
+val* var102 /* : nullable Bool */;
+val* var103 /* : String */;
+val* var104 /* : String */;
+val* var105 /* : CodeFile */;
+val* var106 /* : ModelBuilder */;
+val* var108 /* : ModelBuilder */;
+val* var109 /* : ToolContext */;
+val* var111 /* : ToolContext */;
+static val* varonce112;
+val* var113 /* : String */;
+char* var114 /* : CString */;
+val* var115 /* : String */;
+val* var116 /* : nullable Int */;
+val* var117 /* : nullable Int */;
+val* var118 /* : nullable Bool */;
+val* var119 /* : nullable Bool */;
+val* var121 /* : NativeArray[String] */;
+static val* varonce120;
+static val* varonce122;
+val* var123 /* : String */;
+char* var124 /* : CString */;
+val* var125 /* : String */;
+val* var126 /* : nullable Int */;
+val* var127 /* : nullable Int */;
+val* var128 /* : nullable Bool */;
+val* var129 /* : nullable Bool */;
+val* var130 /* : String */;
+val* var131 /* : CodeFile */;
 var_compiler = self;
 {
-nitc___nitc__AbstractCompiler___compile_header(var_compiler); /* Direct call abstract_compiler#AbstractCompiler#compile_header on <var_compiler:SeparateCompiler>*/
+nitc___nitc__AbstractCompiler___compile_header(var_compiler); /* Direct call abstract_compiler$AbstractCompiler$compile_header on <var_compiler:SeparateCompiler>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var = var2;
@@ -1775,11 +2042,14 @@ var3 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var);
 }
 var_c_name = var3;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
 var6 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
 if (unlikely(var6 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
 var4 = var6;
@@ -1787,9 +2057,12 @@ RET_LABEL5:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var4) on <var4:ModelBuilder> */
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var4) on <var4:ModelBuilder> */
 var9 = var4->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var4:ModelBuilder> */
 if (unlikely(var9 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
@@ -1802,364 +2075,419 @@ if (likely(varonce!=NULL)) {
 var10 = varonce;
 } else {
 var11 = "Property coloring";
-var12 = core__flat___NativeString___to_s_full(var11, 17l, 17l);
+var13 = (val*)(17l<<2|1);
+var14 = (val*)(17l<<2|1);
+var15 = (val*)((long)(0)<<2|3);
+var16 = (val*)((long)(0)<<2|3);
+var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16);
 var10 = var12;
 varonce = var10;
 }
 {
-nitc___nitc__ToolContext___info(var7, var10, 2l); /* Direct call toolcontext#ToolContext#info on <var7:ToolContext>*/
+nitc___nitc__ToolContext___info(var7, var10, 2l); /* Direct call toolcontext$ToolContext$info on <var7:ToolContext>*/
 }
-if (unlikely(varonce13==NULL)) {
-var14 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce15!=NULL)) {
-var16 = varonce15;
+if (unlikely(varonce17==NULL)) {
+var18 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
+if (likely(varonce19!=NULL)) {
+var20 = varonce19;
 } else {
-var17 = ".classes";
-var18 = core__flat___NativeString___to_s_full(var17, 8l, 8l);
-var16 = var18;
-varonce15 = var16;
+var21 = ".classes";
+var23 = (val*)(8l<<2|1);
+var24 = (val*)(8l<<2|1);
+var25 = (val*)((long)(0)<<2|3);
+var26 = (val*)((long)(0)<<2|3);
+var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
+var20 = var22;
+varonce19 = var20;
 }
-((struct instance_core__NativeArray*)var14)->values[1]=var16;
+((struct instance_core__NativeArray*)var18)->values[1]=var20;
 } else {
-var14 = varonce13;
-varonce13 = NULL;
+var18 = varonce17;
+varonce17 = NULL;
 }
-((struct instance_core__NativeArray*)var14)->values[0]=var_c_name;
+((struct instance_core__NativeArray*)var18)->values[0]=var_c_name;
 {
-var19 = ((val*(*)(val* self))(var14->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var14); /* native_to_s on <var14:NativeArray[String]>*/
+var27 = ((val*(*)(val* self))(var18->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var18); /* native_to_s on <var18:NativeArray[String]>*/
 }
-varonce13 = var14;
+varonce17 = var18;
 {
-var20 = nitc___nitc__AbstractCompiler___new_file(var_compiler, var19);
+var28 = nitc___nitc__AbstractCompiler___new_file(var_compiler, var27);
 }
 {
-nitc___nitc__SeparateCompiler___do_property_coloring(var_compiler); /* Direct call separate_compiler#SeparateCompiler#do_property_coloring on <var_compiler:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___do_property_coloring(var_compiler); /* Direct call separate_compiler$SeparateCompiler$do_property_coloring on <var_compiler:SeparateCompiler>*/
 }
 {
-nitc___nitc__SeparateCompiler___compile_class_infos(var_compiler); /* Direct call separate_compiler#SeparateCompiler#compile_class_infos on <var_compiler:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_class_infos(var_compiler); /* Direct call separate_compiler$SeparateCompiler$compile_class_infos on <var_compiler:SeparateCompiler>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
-var23 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
-if (unlikely(var23 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
+var31 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
+if (unlikely(var31 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
-var21 = var23;
-RET_LABEL22:(void)0;
+var29 = var31;
+RET_LABEL30:(void)0;
 }
 }
 {
-{ /* Inline mmodule#MModule#in_importation (var21) on <var21:MModule> */
-var26 = var21->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var21:MModule> */
-if (unlikely(var26 == NULL)) {
+{ /* Inline mmodule$MModule$in_importation (var29) on <var29:MModule> */
+var34 = var29->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var29:MModule> */
+if (unlikely(var34 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
 fatal_exit(1);
 }
-var24 = var26;
-RET_LABEL25:(void)0;
+var32 = var34;
+RET_LABEL33:(void)0;
 }
 }
 {
-var27 = poset___poset__POSetElement___greaters(var24);
+var35 = poset___poset__POSetElement___greaters(var32);
 }
-var_ = var27;
+var_ = var35;
 {
-var28 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[MModule]>*/
+var36 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[MModule]>*/
 }
-var_29 = var28;
+var_37 = var36;
 for(;;) {
 {
-var30 = ((short int(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_29); /* is_ok on <var_29:Iterator[MModule]>*/
+var38 = ((short int(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_37); /* is_ok on <var_37:Iterator[MModule]>*/
 }
-if (var30){
+if (var38){
 } else {
 goto BREAK_label;
 }
 {
-var31 = ((val*(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_29); /* item on <var_29:Iterator[MModule]>*/
+var39 = ((val*(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_37); /* item on <var_37:Iterator[MModule]>*/
 }
-var_m = var31;
+var_m = var39;
 {
-{ /* Inline model#MModule#intro_mclasses (var_m) on <var_m:MModule> */
-var34 = var_m->attrs[COLOR_nitc__model__MModule___intro_mclasses].val; /* _intro_mclasses on <var_m:MModule> */
-if (unlikely(var34 == NULL)) {
+{ /* Inline model$MModule$intro_mclasses (var_m) on <var_m:MModule> */
+var42 = var_m->attrs[COLOR_nitc__model__MModule___intro_mclasses].val; /* _intro_mclasses on <var_m:MModule> */
+if (unlikely(var42 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 138);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 147);
 fatal_exit(1);
 }
-var32 = var34;
-RET_LABEL33:(void)0;
+var40 = var42;
+RET_LABEL41:(void)0;
 }
 }
-var_35 = var32;
+var_43 = var40;
 {
-var36 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_35);
+var44 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_43);
 }
-var_37 = var36;
+var_45 = var44;
 for(;;) {
 {
-var38 = ((short int(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_37); /* is_ok on <var_37:IndexedIterator[MClass]>*/
+var46 = ((short int(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_45); /* is_ok on <var_45:IndexedIterator[MClass]>*/
 }
-if (var38){
+if (var46){
 } else {
-goto BREAK_label39;
+goto BREAK_label47;
 }
 {
-var40 = ((val*(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_37); /* item on <var_37:IndexedIterator[MClass]>*/
+var48 = ((val*(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_45); /* item on <var_45:IndexedIterator[MClass]>*/
 }
-var_mclass = var40;
+var_mclass = var48;
 {
 ((void(*)(val* self, val* p0))(var_compiler->class->vft[COLOR_nitc__separate_compiler__SeparateCompiler__compile_class_to_c]))(var_compiler, var_mclass); /* compile_class_to_c on <var_compiler:SeparateCompiler>*/
 }
 {
-((void(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_37); /* next on <var_37:IndexedIterator[MClass]>*/
+((void(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_45); /* next on <var_45:IndexedIterator[MClass]>*/
 }
 }
-BREAK_label39: (void)0;
+BREAK_label47: (void)0;
 {
-((void(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_37); /* finish on <var_37:IndexedIterator[MClass]>*/
+((void(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_45); /* finish on <var_45:IndexedIterator[MClass]>*/
 }
 {
-((void(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_29); /* next on <var_29:Iterator[MModule]>*/
+((void(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_37); /* next on <var_37:Iterator[MModule]>*/
 }
 }
 BREAK_label: (void)0;
 {
-((void(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_29); /* finish on <var_29:Iterator[MModule]>*/
+((void(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_37); /* finish on <var_37:Iterator[MModule]>*/
 }
-if (unlikely(varonce41==NULL)) {
-var42 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce43!=NULL)) {
-var44 = varonce43;
+if (unlikely(varonce49==NULL)) {
+var50 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
+if (likely(varonce51!=NULL)) {
+var52 = varonce51;
 } else {
-var45 = ".main";
-var46 = core__flat___NativeString___to_s_full(var45, 5l, 5l);
-var44 = var46;
-varonce43 = var44;
+var53 = ".main";
+var55 = (val*)(5l<<2|1);
+var56 = (val*)(5l<<2|1);
+var57 = (val*)((long)(0)<<2|3);
+var58 = (val*)((long)(0)<<2|3);
+var54 = core__flat___CString___to_s_unsafe(var53, var55, var56, var57, var58);
+var52 = var54;
+varonce51 = var52;
 }
-((struct instance_core__NativeArray*)var42)->values[1]=var44;
+((struct instance_core__NativeArray*)var50)->values[1]=var52;
 } else {
-var42 = varonce41;
-varonce41 = NULL;
+var50 = varonce49;
+varonce49 = NULL;
 }
-((struct instance_core__NativeArray*)var42)->values[0]=var_c_name;
+((struct instance_core__NativeArray*)var50)->values[0]=var_c_name;
 {
-var47 = ((val*(*)(val* self))(var42->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var42); /* native_to_s on <var42:NativeArray[String]>*/
+var59 = ((val*(*)(val* self))(var50->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var50); /* native_to_s on <var50:NativeArray[String]>*/
 }
-varonce41 = var42;
+varonce49 = var50;
 {
-var48 = nitc___nitc__AbstractCompiler___new_file(var_compiler, var47);
+var60 = nitc___nitc__AbstractCompiler___new_file(var_compiler, var59);
 }
 {
-nitc___nitc__AbstractCompiler___compile_nitni_global_ref_functions(var_compiler); /* Direct call abstract_compiler#AbstractCompiler#compile_nitni_global_ref_functions on <var_compiler:SeparateCompiler>*/
+nitc___nitc__AbstractCompiler___compile_nitni_global_ref_functions(var_compiler); /* Direct call abstract_compiler$AbstractCompiler$compile_nitni_global_ref_functions on <var_compiler:SeparateCompiler>*/
 }
 {
-nitc___nitc__AbstractCompiler___compile_main_function(var_compiler); /* Direct call abstract_compiler#AbstractCompiler#compile_main_function on <var_compiler:SeparateCompiler>*/
+nitc___nitc__AbstractCompiler___compile_main_function(var_compiler); /* Direct call abstract_compiler$AbstractCompiler$compile_main_function on <var_compiler:SeparateCompiler>*/
 }
 {
-nitc___nitc__AbstractCompiler___compile_finalizer_function(var_compiler); /* Direct call abstract_compiler#AbstractCompiler#compile_finalizer_function on <var_compiler:SeparateCompiler>*/
+nitc___nitc__AbstractCompiler___compile_finalizer_function(var_compiler); /* Direct call abstract_compiler$AbstractCompiler$compile_finalizer_function on <var_compiler:SeparateCompiler>*/
 }
 {
-nitc___nitc__SeparateCompiler___link_mmethods(var_compiler); /* Direct call separate_compiler#SeparateCompiler#link_mmethods on <var_compiler:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___link_mmethods(var_compiler); /* Direct call separate_compiler$SeparateCompiler$link_mmethods on <var_compiler:SeparateCompiler>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
-var51 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
-if (unlikely(var51 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
+var63 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
+if (unlikely(var63 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
-var49 = var51;
-RET_LABEL50:(void)0;
+var61 = var63;
+RET_LABEL62:(void)0;
 }
 }
 {
-{ /* Inline mmodule#MModule#in_importation (var49) on <var49:MModule> */
-var54 = var49->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var49:MModule> */
-if (unlikely(var54 == NULL)) {
+{ /* Inline mmodule$MModule$in_importation (var61) on <var61:MModule> */
+var66 = var61->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var61:MModule> */
+if (unlikely(var66 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
 fatal_exit(1);
 }
-var52 = var54;
-RET_LABEL53:(void)0;
+var64 = var66;
+RET_LABEL65:(void)0;
 }
 }
 {
-var55 = poset___poset__POSetElement___greaters(var52);
+var67 = poset___poset__POSetElement___greaters(var64);
 }
-var_56 = var55;
+var_68 = var67;
 {
-var57 = ((val*(*)(val* self))((((long)var_56&3)?class_info[((long)var_56&3)]:var_56->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_56); /* iterator on <var_56:Collection[MModule]>*/
+var69 = ((val*(*)(val* self))((((long)var_68&3)?class_info[((long)var_68&3)]:var_68->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_68); /* iterator on <var_68:Collection[MModule]>*/
 }
-var_58 = var57;
+var_70 = var69;
 for(;;) {
 {
-var59 = ((short int(*)(val* self))((((long)var_58&3)?class_info[((long)var_58&3)]:var_58->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_58); /* is_ok on <var_58:Iterator[MModule]>*/
+var71 = ((short int(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_70); /* is_ok on <var_70:Iterator[MModule]>*/
 }
-if (var59){
+if (var71){
 } else {
-goto BREAK_label60;
+goto BREAK_label72;
 }
 {
-var61 = ((val*(*)(val* self))((((long)var_58&3)?class_info[((long)var_58&3)]:var_58->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_58); /* item on <var_58:Iterator[MModule]>*/
+var73 = ((val*(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_70); /* item on <var_70:Iterator[MModule]>*/
 }
-var_m62 = var61;
+var_m74 = var73;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
-var65 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
-if (unlikely(var65 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
+var77 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
+if (unlikely(var77 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
-var63 = var65;
-RET_LABEL64:(void)0;
+var75 = var77;
+RET_LABEL76:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var63) on <var63:ModelBuilder> */
-var68 = var63->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var63:ModelBuilder> */
-if (unlikely(var68 == NULL)) {
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var75) on <var75:ModelBuilder> */
+var80 = var75->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var75:ModelBuilder> */
+if (unlikely(var80 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
 }
-var66 = var68;
-RET_LABEL67:(void)0;
+var78 = var80;
+RET_LABEL79:(void)0;
 }
 }
-if (unlikely(varonce69==NULL)) {
-var70 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce71!=NULL)) {
-var72 = varonce71;
+if (unlikely(varonce81==NULL)) {
+var82 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
+if (likely(varonce83!=NULL)) {
+var84 = varonce83;
 } else {
-var73 = "Generate C for module ";
-var74 = core__flat___NativeString___to_s_full(var73, 22l, 22l);
-var72 = var74;
-varonce71 = var72;
+var85 = "Generate C for module ";
+var87 = (val*)(22l<<2|1);
+var88 = (val*)(22l<<2|1);
+var89 = (val*)((long)(0)<<2|3);
+var90 = (val*)((long)(0)<<2|3);
+var86 = core__flat___CString___to_s_unsafe(var85, var87, var88, var89, var90);
+var84 = var86;
+varonce83 = var84;
 }
-((struct instance_core__NativeArray*)var70)->values[0]=var72;
+((struct instance_core__NativeArray*)var82)->values[0]=var84;
 } else {
-var70 = varonce69;
-varonce69 = NULL;
+var82 = varonce81;
+varonce81 = NULL;
 }
 {
-var75 = nitc___nitc__MModule___nitc__model_base__MEntity__full_name(var_m62);
+var91 = nitc___nitc__MModule___nitc__model_base__MEntity__full_name(var_m74);
 }
-((struct instance_core__NativeArray*)var70)->values[1]=var75;
+((struct instance_core__NativeArray*)var82)->values[1]=var91;
 {
-var76 = ((val*(*)(val* self))(var70->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var70); /* native_to_s on <var70:NativeArray[String]>*/
+var92 = ((val*(*)(val* self))(var82->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var82); /* native_to_s on <var82:NativeArray[String]>*/
 }
-varonce69 = var70;
+varonce81 = var82;
 {
-nitc___nitc__ToolContext___info(var66, var76, 2l); /* Direct call toolcontext#ToolContext#info on <var66:ToolContext>*/
+nitc___nitc__ToolContext___info(var78, var92, 2l); /* Direct call toolcontext$ToolContext$info on <var78:ToolContext>*/
 }
-if (unlikely(varonce77==NULL)) {
-var78 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce79!=NULL)) {
-var80 = varonce79;
+if (unlikely(varonce93==NULL)) {
+var94 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
+if (likely(varonce95!=NULL)) {
+var96 = varonce95;
 } else {
-var81 = ".sep";
-var82 = core__flat___NativeString___to_s_full(var81, 4l, 4l);
-var80 = var82;
-varonce79 = var80;
+var97 = ".sep";
+var99 = (val*)(4l<<2|1);
+var100 = (val*)(4l<<2|1);
+var101 = (val*)((long)(0)<<2|3);
+var102 = (val*)((long)(0)<<2|3);
+var98 = core__flat___CString___to_s_unsafe(var97, var99, var100, var101, var102);
+var96 = var98;
+varonce95 = var96;
 }
-((struct instance_core__NativeArray*)var78)->values[1]=var80;
+((struct instance_core__NativeArray*)var94)->values[1]=var96;
 } else {
-var78 = varonce77;
-varonce77 = NULL;
+var94 = varonce93;
+varonce93 = NULL;
 }
 {
-var83 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var_m62);
+var103 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var_m74);
 }
-((struct instance_core__NativeArray*)var78)->values[0]=var83;
+((struct instance_core__NativeArray*)var94)->values[0]=var103;
 {
-var84 = ((val*(*)(val* self))(var78->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var78); /* native_to_s on <var78:NativeArray[String]>*/
+var104 = ((val*(*)(val* self))(var94->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var94); /* native_to_s on <var94:NativeArray[String]>*/
 }
-varonce77 = var78;
+varonce93 = var94;
 {
-var85 = nitc___nitc__AbstractCompiler___new_file(var_compiler, var84);
+var105 = nitc___nitc__AbstractCompiler___new_file(var_compiler, var104);
 }
 {
-nitc___nitc__SeparateCompiler___compile_module_to_c(var_compiler, var_m62); /* Direct call separate_compiler#SeparateCompiler#compile_module_to_c on <var_compiler:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_module_to_c(var_compiler, var_m74); /* Direct call separate_compiler$SeparateCompiler$compile_module_to_c on <var_compiler:SeparateCompiler>*/
 }
 {
-((void(*)(val* self))((((long)var_58&3)?class_info[((long)var_58&3)]:var_58->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_58); /* next on <var_58:Iterator[MModule]>*/
+((void(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_70); /* next on <var_70:Iterator[MModule]>*/
 }
 }
-BREAK_label60: (void)0;
+BREAK_label72: (void)0;
 {
-((void(*)(val* self))((((long)var_58&3)?class_info[((long)var_58&3)]:var_58->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_58); /* finish on <var_58:Iterator[MModule]>*/
+((void(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_70); /* finish on <var_70:Iterator[MModule]>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
-var88 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
-if (unlikely(var88 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
+var108 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
+if (unlikely(var108 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
-var86 = var88;
-RET_LABEL87:(void)0;
+var106 = var108;
+RET_LABEL107:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var86) on <var86:ModelBuilder> */
-var91 = var86->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var86:ModelBuilder> */
-if (unlikely(var91 == NULL)) {
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var106) on <var106:ModelBuilder> */
+var111 = var106->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var106:ModelBuilder> */
+if (unlikely(var111 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
 }
-var89 = var91;
-RET_LABEL90:(void)0;
+var109 = var111;
+RET_LABEL110:(void)0;
 }
 }
-if (likely(varonce92!=NULL)) {
-var93 = varonce92;
+if (likely(varonce112!=NULL)) {
+var113 = varonce112;
 } else {
-var94 = "Type coloring";
-var95 = core__flat___NativeString___to_s_full(var94, 13l, 13l);
-var93 = var95;
-varonce92 = var93;
+var114 = "Type coloring";
+var116 = (val*)(13l<<2|1);
+var117 = (val*)(13l<<2|1);
+var118 = (val*)((long)(0)<<2|3);
+var119 = (val*)((long)(0)<<2|3);
+var115 = core__flat___CString___to_s_unsafe(var114, var116, var117, var118, var119);
+var113 = var115;
+varonce112 = var113;
 }
 {
-nitc___nitc__ToolContext___info(var89, var93, 2l); /* Direct call toolcontext#ToolContext#info on <var89:ToolContext>*/
+nitc___nitc__ToolContext___info(var109, var113, 2l); /* Direct call toolcontext$ToolContext$info on <var109:ToolContext>*/
 }
-if (unlikely(varonce96==NULL)) {
-var97 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce98!=NULL)) {
-var99 = varonce98;
+if (unlikely(varonce120==NULL)) {
+var121 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
+if (likely(varonce122!=NULL)) {
+var123 = varonce122;
 } else {
-var100 = ".types";
-var101 = core__flat___NativeString___to_s_full(var100, 6l, 6l);
-var99 = var101;
-varonce98 = var99;
+var124 = ".types";
+var126 = (val*)(6l<<2|1);
+var127 = (val*)(6l<<2|1);
+var128 = (val*)((long)(0)<<2|3);
+var129 = (val*)((long)(0)<<2|3);
+var125 = core__flat___CString___to_s_unsafe(var124, var126, var127, var128, var129);
+var123 = var125;
+varonce122 = var123;
 }
-((struct instance_core__NativeArray*)var97)->values[1]=var99;
+((struct instance_core__NativeArray*)var121)->values[1]=var123;
 } else {
-var97 = varonce96;
-varonce96 = NULL;
+var121 = varonce120;
+varonce120 = NULL;
 }
-((struct instance_core__NativeArray*)var97)->values[0]=var_c_name;
+((struct instance_core__NativeArray*)var121)->values[0]=var_c_name;
 {
-var102 = ((val*(*)(val* self))(var97->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var97); /* native_to_s on <var97:NativeArray[String]>*/
+var130 = ((val*(*)(val* self))(var121->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var121); /* native_to_s on <var121:NativeArray[String]>*/
 }
-varonce96 = var97;
+varonce120 = var121;
 {
-var103 = nitc___nitc__AbstractCompiler___new_file(var_compiler, var102);
+var131 = nitc___nitc__AbstractCompiler___new_file(var_compiler, var130);
 }
 {
 ((void(*)(val* self))(var_compiler->class->vft[COLOR_nitc__separate_compiler__SeparateCompiler__compile_types]))(var_compiler); /* compile_types on <var_compiler:SeparateCompiler>*/
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#compile_types for (self: SeparateCompiler) */
+/* method separate_compiler$SeparateCompiler$compile_types for (self: SeparateCompiler) */
 void nitc___nitc__SeparateCompiler___compile_types(val* self) {
 val* var_compiler /* var compiler: SeparateCompiler */;
 val* var /* : Collection[MType] */;
@@ -2202,7 +2530,7 @@ var4 = ((val*(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2-
 }
 var_t = var4;
 {
-nitc___nitc__SeparateCompiler___compile_type_to_c(var_compiler, var_t); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on <var_compiler:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_type_to_c(var_compiler, var_t); /* Direct call separate_compiler$SeparateCompiler$compile_type_to_c on <var_compiler:SeparateCompiler>*/
 }
 {
 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_2); /* next on <var_2:Iterator[MType]>*/
@@ -2213,9 +2541,12 @@ BREAK_label: (void)0;
 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_2); /* finish on <var_2:Iterator[MType]>*/
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on <var_compiler:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$undead_types (var_compiler) on <var_compiler:SeparateCompiler> */
 var7 = var_compiler->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on <var_compiler:SeparateCompiler> */
 if (unlikely(var7 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 146);
 fatal_exit(1);
@@ -2249,7 +2580,7 @@ goto BREAK_label16;
 } else {
 }
 {
-nitc___nitc__SeparateCompiler___compile_type_to_c(var_compiler, var_t14); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on <var_compiler:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_type_to_c(var_compiler, var_t14); /* Direct call separate_compiler$SeparateCompiler$compile_type_to_c on <var_compiler:SeparateCompiler>*/
 }
 BREAK_label16: (void)0;
 {
@@ -2262,72 +2593,107 @@ BREAK_label12: (void)0;
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#compile_header_structs for (self: SeparateCompiler) */
+/* method separate_compiler$SeparateCompiler$compile_header_structs for (self: SeparateCompiler) */
 void nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__compile_header_structs(val* self) {
 val* var /* : CodeWriter */;
 val* var2 /* : CodeWriter */;
 static val* varonce;
 val* var3 /* : String */;
-char* var4 /* : NativeString */;
+char* var4 /* : CString */;
 val* var5 /* : String */;
-val* var6 /* : CodeWriter */;
-val* var8 /* : CodeWriter */;
-static val* varonce9;
-val* var10 /* : String */;
-char* var11 /* : NativeString */;
-val* var12 /* : String */;
-val* var13 /* : CodeWriter */;
-val* var15 /* : CodeWriter */;
-static val* varonce16;
-val* var17 /* : String */;
-char* var18 /* : NativeString */;
-val* var19 /* : String */;
-val* var20 /* : CodeWriter */;
-val* var22 /* : CodeWriter */;
-static val* varonce23;
-val* var24 /* : String */;
-char* var25 /* : NativeString */;
-val* var26 /* : String */;
-val* var27 /* : CodeWriter */;
-val* var29 /* : CodeWriter */;
-static val* varonce30;
-val* var31 /* : String */;
-char* var32 /* : NativeString */;
-val* var33 /* : String */;
+val* var6 /* : nullable Int */;
+val* var7 /* : nullable Int */;
+val* var8 /* : nullable Bool */;
+val* var9 /* : nullable Bool */;
+val* var10 /* : CodeWriter */;
+val* var12 /* : CodeWriter */;
+static val* varonce13;
+val* var14 /* : String */;
+char* var15 /* : CString */;
+val* var16 /* : String */;
+val* var17 /* : nullable Int */;
+val* var18 /* : nullable Int */;
+val* var19 /* : nullable Bool */;
+val* var20 /* : nullable Bool */;
+val* var21 /* : CodeWriter */;
+val* var23 /* : CodeWriter */;
+static val* varonce24;
+val* var25 /* : String */;
+char* var26 /* : CString */;
+val* var27 /* : String */;
+val* var28 /* : nullable Int */;
+val* var29 /* : nullable Int */;
+val* var30 /* : nullable Bool */;
+val* var31 /* : nullable Bool */;
+val* var32 /* : CodeWriter */;
 val* var34 /* : CodeWriter */;
-val* var36 /* : CodeWriter */;
-static val* varonce37;
+static val* varonce35;
+val* var36 /* : String */;
+char* var37 /* : CString */;
 val* var38 /* : String */;
-char* var39 /* : NativeString */;
-val* var40 /* : String */;
-val* var41 /* : ModelBuilder */;
-val* var43 /* : ModelBuilder */;
-val* var44 /* : ToolContext */;
-val* var46 /* : ToolContext */;
-val* var47 /* : OptionBool */;
-val* var49 /* : OptionBool */;
-val* var50 /* : nullable Object */;
-val* var52 /* : nullable Object */;
-short int var53 /* : Bool */;
-short int var54 /* : Bool */;
-val* var55 /* : CodeWriter */;
-val* var57 /* : CodeWriter */;
-static val* varonce58;
-val* var59 /* : String */;
-char* var60 /* : NativeString */;
-val* var61 /* : String */;
-val* var62 /* : CodeWriter */;
-val* var64 /* : CodeWriter */;
-static val* varonce65;
-val* var66 /* : String */;
-char* var67 /* : NativeString */;
-val* var68 /* : String */;
+val* var39 /* : nullable Int */;
+val* var40 /* : nullable Int */;
+val* var41 /* : nullable Bool */;
+val* var42 /* : nullable Bool */;
+val* var43 /* : CodeWriter */;
+val* var45 /* : CodeWriter */;
+static val* varonce46;
+val* var47 /* : String */;
+char* var48 /* : CString */;
+val* var49 /* : String */;
+val* var50 /* : nullable Int */;
+val* var51 /* : nullable Int */;
+val* var52 /* : nullable Bool */;
+val* var53 /* : nullable Bool */;
+val* var54 /* : CodeWriter */;
+val* var56 /* : CodeWriter */;
+static val* varonce57;
+val* var58 /* : String */;
+char* var59 /* : CString */;
+val* var60 /* : String */;
+val* var61 /* : nullable Int */;
+val* var62 /* : nullable Int */;
+val* var63 /* : nullable Bool */;
+val* var64 /* : nullable Bool */;
+val* var65 /* : ModelBuilder */;
+val* var67 /* : ModelBuilder */;
+val* var68 /* : ToolContext */;
+val* var70 /* : ToolContext */;
+val* var71 /* : OptionBool */;
+val* var73 /* : OptionBool */;
+val* var74 /* : nullable Object */;
+val* var76 /* : nullable Object */;
+short int var77 /* : Bool */;
+short int var78 /* : Bool */;
+val* var79 /* : CodeWriter */;
+val* var81 /* : CodeWriter */;
+static val* varonce82;
+val* var83 /* : String */;
+char* var84 /* : CString */;
+val* var85 /* : String */;
+val* var86 /* : nullable Int */;
+val* var87 /* : nullable Int */;
+val* var88 /* : nullable Bool */;
+val* var89 /* : nullable Bool */;
+val* var90 /* : CodeWriter */;
+val* var92 /* : CodeWriter */;
+static val* varonce93;
+val* var94 /* : String */;
+char* var95 /* : CString */;
+val* var96 /* : String */;
+val* var97 /* : nullable Int */;
+val* var98 /* : nullable Int */;
+val* var99 /* : nullable Bool */;
+val* var100 /* : nullable Bool */;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
 if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
 var = var2;
@@ -2338,228 +2704,290 @@ if (likely(varonce!=NULL)) {
 var3 = varonce;
 } else {
 var4 = "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
-var5 = core__flat___NativeString___to_s_full(var4, 81l, 81l);
+var6 = (val*)(81l<<2|1);
+var7 = (val*)(81l<<2|1);
+var8 = (val*)((long)(0)<<2|3);
+var9 = (val*)((long)(0)<<2|3);
+var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
 var3 = var5;
 varonce = var3;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var, var3); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var, var3); /* Direct call abstract_compiler$CodeWriter$add_decl on <var:CodeWriter>*/
 }
 {
-nitc___nitc__SeparateCompiler___compile_header_attribute_structs(self); /* Direct call separate_compiler#SeparateCompiler#compile_header_attribute_structs on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_header_attribute_structs(self); /* Direct call separate_compiler$SeparateCompiler$compile_header_attribute_structs on <self:SeparateCompiler>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var8 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var8 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var12 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var12 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var6 = var8;
-RET_LABEL7:(void)0;
+var10 = var12;
+RET_LABEL11:(void)0;
 }
 }
-if (likely(varonce9!=NULL)) {
-var10 = varonce9;
+if (likely(varonce13!=NULL)) {
+var14 = varonce13;
 } else {
-var11 = "struct class { int box_kind; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
-var12 = core__flat___NativeString___to_s_full(var11, 97l, 97l);
-var10 = var12;
-varonce9 = var10;
+var15 = "struct class { int box_kind; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
+var17 = (val*)(97l<<2|1);
+var18 = (val*)(97l<<2|1);
+var19 = (val*)((long)(0)<<2|3);
+var20 = (val*)((long)(0)<<2|3);
+var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
+var14 = var16;
+varonce13 = var14;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var6, var10); /* Direct call abstract_compiler#CodeWriter#add_decl on <var6:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var10, var14); /* Direct call abstract_compiler$CodeWriter$add_decl on <var10:CodeWriter>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var15 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var15 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var23 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var23 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var13 = var15;
-RET_LABEL14:(void)0;
+var21 = var23;
+RET_LABEL22:(void)0;
 }
 }
-if (likely(varonce16!=NULL)) {
-var17 = varonce16;
+if (likely(varonce24!=NULL)) {
+var25 = varonce24;
 } else {
-var18 = "struct type { int id; const char *name; int color; short int is_nullable; const struct types *resolution_table; int table_size; int type_table[]; }; /* general C type representing a Nit type. */";
-var19 = core__flat___NativeString___to_s_full(var18, 194l, 194l);
-var17 = var19;
-varonce16 = var17;
+var26 = "struct type { int id; const char *name; int color; short int is_nullable; const struct types *resolution_table; int table_size; int type_table[]; }; /* general C type representing a Nit type. */";
+var28 = (val*)(194l<<2|1);
+var29 = (val*)(194l<<2|1);
+var30 = (val*)((long)(0)<<2|3);
+var31 = (val*)((long)(0)<<2|3);
+var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
+var25 = var27;
+varonce24 = var25;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var13, var17); /* Direct call abstract_compiler#CodeWriter#add_decl on <var13:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var21, var25); /* Direct call abstract_compiler$CodeWriter$add_decl on <var21:CodeWriter>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var22 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var22 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var34 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var34 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var20 = var22;
-RET_LABEL21:(void)0;
+var32 = var34;
+RET_LABEL33:(void)0;
 }
 }
-if (likely(varonce23!=NULL)) {
-var24 = varonce23;
+if (likely(varonce35!=NULL)) {
+var36 = varonce35;
 } else {
-var25 = "struct instance { const struct type *type; const struct class *class; nitattribute_t attrs[]; }; /* general C type representing a Nit instance. */";
-var26 = core__flat___NativeString___to_s_full(var25, 146l, 146l);
-var24 = var26;
-varonce23 = var24;
+var37 = "struct instance { const struct type *type; const struct class *class; nitattribute_t attrs[]; }; /* general C type representing a Nit instance. */";
+var39 = (val*)(146l<<2|1);
+var40 = (val*)(146l<<2|1);
+var41 = (val*)((long)(0)<<2|3);
+var42 = (val*)((long)(0)<<2|3);
+var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42);
+var36 = var38;
+varonce35 = var36;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var20, var24); /* Direct call abstract_compiler#CodeWriter#add_decl on <var20:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var32, var36); /* Direct call abstract_compiler$CodeWriter$add_decl on <var32:CodeWriter>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var29 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var29 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var45 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var45 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var27 = var29;
-RET_LABEL28:(void)0;
+var43 = var45;
+RET_LABEL44:(void)0;
 }
 }
-if (likely(varonce30!=NULL)) {
-var31 = varonce30;
+if (likely(varonce46!=NULL)) {
+var47 = varonce46;
 } else {
-var32 = "struct types { int dummy; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
-var33 = core__flat___NativeString___to_s_full(var32, 117l, 117l);
-var31 = var33;
-varonce30 = var31;
+var48 = "struct types { int dummy; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
+var50 = (val*)(117l<<2|1);
+var51 = (val*)(117l<<2|1);
+var52 = (val*)((long)(0)<<2|3);
+var53 = (val*)((long)(0)<<2|3);
+var49 = core__flat___CString___to_s_unsafe(var48, var50, var51, var52, var53);
+var47 = var49;
+varonce46 = var47;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var27, var31); /* Direct call abstract_compiler#CodeWriter#add_decl on <var27:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var43, var47); /* Direct call abstract_compiler$CodeWriter$add_decl on <var43:CodeWriter>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var36 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var36 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var56 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var56 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var34 = var36;
-RET_LABEL35:(void)0;
+var54 = var56;
+RET_LABEL55:(void)0;
 }
 }
-if (likely(varonce37!=NULL)) {
-var38 = varonce37;
+if (likely(varonce57!=NULL)) {
+var58 = varonce57;
 } else {
-var39 = "typedef struct instance val; /* general C type representing a Nit instance. */";
-var40 = core__flat___NativeString___to_s_full(var39, 78l, 78l);
-var38 = var40;
-varonce37 = var38;
+var59 = "typedef struct instance val; /* general C type representing a Nit instance. */";
+var61 = (val*)(78l<<2|1);
+var62 = (val*)(78l<<2|1);
+var63 = (val*)((long)(0)<<2|3);
+var64 = (val*)((long)(0)<<2|3);
+var60 = core__flat___CString___to_s_unsafe(var59, var61, var62, var63, var64);
+var58 = var60;
+varonce57 = var58;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var34, var38); /* Direct call abstract_compiler#CodeWriter#add_decl on <var34:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var54, var58); /* Direct call abstract_compiler$CodeWriter$add_decl on <var54:CodeWriter>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
-var43 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
-if (unlikely(var43 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
+var67 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
+if (unlikely(var67 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
-var41 = var43;
-RET_LABEL42:(void)0;
+var65 = var67;
+RET_LABEL66:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var41) on <var41:ModelBuilder> */
-var46 = var41->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var41:ModelBuilder> */
-if (unlikely(var46 == NULL)) {
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var65) on <var65:ModelBuilder> */
+var70 = var65->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var65:ModelBuilder> */
+if (unlikely(var70 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
 }
-var44 = var46;
-RET_LABEL45:(void)0;
+var68 = var70;
+RET_LABEL69:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (var44) on <var44:ToolContext> */
-var49 = var44->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_tag_primitives].val; /* _opt_no_tag_primitives on <var44:ToolContext> */
-if (unlikely(var49 == NULL)) {
+{ /* Inline separate_compiler$ToolContext$opt_no_tag_primitives (var68) on <var68:ToolContext> */
+var73 = var68->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_tag_primitives].val; /* _opt_no_tag_primitives on <var68:ToolContext> */
+if (unlikely(var73 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 32);
 fatal_exit(1);
 }
-var47 = var49;
-RET_LABEL48:(void)0;
+var71 = var73;
+RET_LABEL72:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var47) on <var47:OptionBool> */
-var52 = var47->attrs[COLOR_opts__Option___value].val; /* _value on <var47:OptionBool> */
-var50 = var52;
-RET_LABEL51:(void)0;
+{ /* Inline opts$Option$value (var71) on <var71:OptionBool> */
+var76 = var71->attrs[COLOR_opts__Option___value].val; /* _value on <var71:OptionBool> */
+var74 = var76;
+RET_LABEL75:(void)0;
 }
 }
-var53 = (short int)((long)(var50)>>2);
-var54 = !var53;
-if (var54){
+var77 = (short int)((long)(var74)>>2);
+var78 = !var77;
+if (var78){
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var57 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var57 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var81 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var81 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var55 = var57;
-RET_LABEL56:(void)0;
+var79 = var81;
+RET_LABEL80:(void)0;
 }
 }
-if (likely(varonce58!=NULL)) {
-var59 = varonce58;
+if (likely(varonce82!=NULL)) {
+var83 = varonce82;
 } else {
-var60 = "extern const struct class *class_info[];";
-var61 = core__flat___NativeString___to_s_full(var60, 40l, 40l);
-var59 = var61;
-varonce58 = var59;
+var84 = "extern const struct class *class_info[];";
+var86 = (val*)(40l<<2|1);
+var87 = (val*)(40l<<2|1);
+var88 = (val*)((long)(0)<<2|3);
+var89 = (val*)((long)(0)<<2|3);
+var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89);
+var83 = var85;
+varonce82 = var83;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var55, var59); /* Direct call abstract_compiler#CodeWriter#add_decl on <var55:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var79, var83); /* Direct call abstract_compiler$CodeWriter$add_decl on <var79:CodeWriter>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var64 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var64 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var92 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var92 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var62 = var64;
-RET_LABEL63:(void)0;
+var90 = var92;
+RET_LABEL91:(void)0;
 }
 }
-if (likely(varonce65!=NULL)) {
-var66 = varonce65;
+if (likely(varonce93!=NULL)) {
+var94 = varonce93;
 } else {
-var67 = "extern const struct type *type_info[];";
-var68 = core__flat___NativeString___to_s_full(var67, 38l, 38l);
-var66 = var68;
-varonce65 = var66;
+var95 = "extern const struct type *type_info[];";
+var97 = (val*)(38l<<2|1);
+var98 = (val*)(38l<<2|1);
+var99 = (val*)((long)(0)<<2|3);
+var100 = (val*)((long)(0)<<2|3);
+var96 = core__flat___CString___to_s_unsafe(var95, var97, var98, var99, var100);
+var94 = var96;
+varonce93 = var94;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var62, var66); /* Direct call abstract_compiler#CodeWriter#add_decl on <var62:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var90, var94); /* Direct call abstract_compiler$CodeWriter$add_decl on <var90:CodeWriter>*/
 }
 } else {
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: SeparateCompiler) */
+/* method separate_compiler$SeparateCompiler$compile_header_attribute_structs for (self: SeparateCompiler) */
 void nitc___nitc__SeparateCompiler___compile_header_attribute_structs(val* self) {
 val* var /* : ModelBuilder */;
 val* var2 /* : ModelBuilder */;
@@ -2574,70 +3002,101 @@ val* var13 /* : CodeWriter */;
 val* var15 /* : CodeWriter */;
 static val* varonce;
 val* var16 /* : String */;
-char* var17 /* : NativeString */;
+char* var17 /* : CString */;
 val* var18 /* : String */;
-val* var19 /* : CodeWriter */;
-val* var21 /* : CodeWriter */;
-static val* varonce22;
-val* var23 /* : String */;
-char* var24 /* : NativeString */;
-val* var25 /* : String */;
-val* var26 /* : CodeWriter */;
-val* var28 /* : CodeWriter */;
-static val* varonce29;
-val* var30 /* : String */;
-char* var31 /* : NativeString */;
-val* var32 /* : String */;
-val* var33 /* : HashMap[MClass, Int] */;
-val* var35 /* : HashMap[MClass, Int] */;
+val* var19 /* : nullable Int */;
+val* var20 /* : nullable Int */;
+val* var21 /* : nullable Bool */;
+val* var22 /* : nullable Bool */;
+val* var23 /* : CodeWriter */;
+val* var25 /* : CodeWriter */;
+static val* varonce26;
+val* var27 /* : String */;
+char* var28 /* : CString */;
+val* var29 /* : String */;
+val* var30 /* : nullable Int */;
+val* var31 /* : nullable Int */;
+val* var32 /* : nullable Bool */;
+val* var33 /* : nullable Bool */;
+val* var34 /* : CodeWriter */;
+val* var36 /* : CodeWriter */;
+static val* varonce37;
+val* var38 /* : String */;
+char* var39 /* : CString */;
+val* var40 /* : String */;
+val* var41 /* : nullable Int */;
+val* var42 /* : nullable Int */;
+val* var43 /* : nullable Bool */;
+val* var44 /* : nullable Bool */;
+val* var45 /* : HashMap[MClass, Int] */;
+val* var47 /* : HashMap[MClass, Int] */;
 val* var_ /* var : HashMap[MClass, Int] */;
-val* var36 /* : MapIterator[nullable Object, nullable Object] */;
-val* var_37 /* var : MapIterator[MClass, Int] */;
-short int var38 /* : Bool */;
-val* var39 /* : nullable Object */;
+val* var48 /* : MapIterator[nullable Object, nullable Object] */;
+val* var_49 /* var : MapIterator[MClass, Int] */;
+short int var50 /* : Bool */;
+val* var51 /* : nullable Object */;
 val* var_c /* var c: MClass */;
-val* var40 /* : nullable Object */;
-long var41 /* : Int */;
+val* var52 /* : nullable Object */;
+long var53 /* : Int */;
 long var_v /* var v: Int */;
-val* var42 /* : MClassType */;
-val* var44 /* : MClassType */;
+val* var54 /* : MClassType */;
+val* var56 /* : MClassType */;
 val* var_t /* var t: MClassType */;
-val* var45 /* : MClass */;
-val* var47 /* : MClass */;
-val* var48 /* : String */;
-val* var50 /* : String */;
-static val* varonce51;
-val* var52 /* : String */;
-char* var53 /* : NativeString */;
-val* var54 /* : String */;
-short int var55 /* : Bool */;
-val* var57 /* : CodeWriter */;
-val* var59 /* : CodeWriter */;
-val* var61 /* : NativeArray[String] */;
-static val* varonce60;
-static val* varonce62;
-val* var63 /* : String */;
-char* var64 /* : NativeString */;
-val* var65 /* : String */;
-static val* varonce66;
-val* var67 /* : String */;
-char* var68 /* : NativeString */;
-val* var69 /* : String */;
-val* var70 /* : String */;
-val* var71 /* : String */;
-val* var72 /* : String */;
-val* var74 /* : CodeWriter */;
-val* var76 /* : CodeWriter */;
-static val* varonce77;
-val* var78 /* : String */;
-char* var79 /* : NativeString */;
-val* var80 /* : String */;
-{
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
+val* var57 /* : MClass */;
+val* var59 /* : MClass */;
+val* var60 /* : String */;
+val* var62 /* : String */;
+static val* varonce63;
+val* var64 /* : String */;
+char* var65 /* : CString */;
+val* var66 /* : String */;
+val* var67 /* : nullable Int */;
+val* var68 /* : nullable Int */;
+val* var69 /* : nullable Bool */;
+val* var70 /* : nullable Bool */;
+short int var71 /* : Bool */;
+val* var73 /* : CodeWriter */;
+val* var75 /* : CodeWriter */;
+val* var77 /* : NativeArray[String] */;
+static val* varonce76;
+static val* varonce78;
+val* var79 /* : String */;
+char* var80 /* : CString */;
+val* var81 /* : String */;
+val* var82 /* : nullable Int */;
+val* var83 /* : nullable Int */;
+val* var84 /* : nullable Bool */;
+val* var85 /* : nullable Bool */;
+static val* varonce86;
+val* var87 /* : String */;
+char* var88 /* : CString */;
+val* var89 /* : String */;
+val* var90 /* : nullable Int */;
+val* var91 /* : nullable Int */;
+val* var92 /* : nullable Bool */;
+val* var93 /* : nullable Bool */;
+val* var94 /* : String */;
+val* var95 /* : String */;
+val* var96 /* : String */;
+val* var98 /* : CodeWriter */;
+val* var100 /* : CodeWriter */;
+static val* varonce101;
+val* var102 /* : String */;
+char* var103 /* : CString */;
+val* var104 /* : String */;
+val* var105 /* : nullable Int */;
+val* var106 /* : nullable Int */;
+val* var107 /* : nullable Bool */;
+val* var108 /* : nullable Bool */;
+{
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
 if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
 var = var2;
@@ -2645,9 +3104,12 @@ RET_LABEL1:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var) on <var:ModelBuilder> */
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var) on <var:ModelBuilder> */
 var5 = var->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var:ModelBuilder> */
 if (unlikely(var5 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
@@ -2657,9 +3119,12 @@ RET_LABEL4:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_no_union_attribute (var3) on <var3:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_no_union_attribute (var3) on <var3:ToolContext> */
 var8 = var3->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on <var3:ToolContext> */
 if (unlikely(var8 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 28);
 fatal_exit(1);
@@ -2669,7 +3134,7 @@ RET_LABEL7:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var6) on <var6:OptionBool> */
+{ /* Inline opts$Option$value (var6) on <var6:OptionBool> */
 var11 = var6->attrs[COLOR_opts__Option___value].val; /* _value on <var6:OptionBool> */
 var9 = var11;
 RET_LABEL10:(void)0;
@@ -2678,11 +3143,14 @@ RET_LABEL10:(void)0;
 var12 = (short int)((long)(var9)>>2);
 if (var12){
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
 var15 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
 if (unlikely(var15 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
 var13 = var15;
@@ -2693,621 +3161,795 @@ if (likely(varonce!=NULL)) {
 var16 = varonce;
 } else {
 var17 = "typedef void* nitattribute_t; /* general C type representing a Nit attribute. */";
-var18 = core__flat___NativeString___to_s_full(var17, 80l, 80l);
+var19 = (val*)(80l<<2|1);
+var20 = (val*)(80l<<2|1);
+var21 = (val*)((long)(0)<<2|3);
+var22 = (val*)((long)(0)<<2|3);
+var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
 var16 = var18;
 varonce = var16;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var13, var16); /* Direct call abstract_compiler#CodeWriter#add_decl on <var13:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var13, var16); /* Direct call abstract_compiler$CodeWriter$add_decl on <var13:CodeWriter>*/
 }
 } else {
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var21 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var21 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var25 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var25 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var19 = var21;
-RET_LABEL20:(void)0;
+var23 = var25;
+RET_LABEL24:(void)0;
 }
 }
-if (likely(varonce22!=NULL)) {
-var23 = varonce22;
+if (likely(varonce26!=NULL)) {
+var27 = varonce26;
 } else {
-var24 = "typedef union {";
-var25 = core__flat___NativeString___to_s_full(var24, 15l, 15l);
-var23 = var25;
-varonce22 = var23;
+var28 = "typedef union {";
+var30 = (val*)(15l<<2|1);
+var31 = (val*)(15l<<2|1);
+var32 = (val*)((long)(0)<<2|3);
+var33 = (val*)((long)(0)<<2|3);
+var29 = core__flat___CString___to_s_unsafe(var28, var30, var31, var32, var33);
+var27 = var29;
+varonce26 = var27;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var19, var23); /* Direct call abstract_compiler#CodeWriter#add_decl on <var19:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var23, var27); /* Direct call abstract_compiler$CodeWriter$add_decl on <var23:CodeWriter>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var28 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var28 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var36 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var36 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var26 = var28;
-RET_LABEL27:(void)0;
+var34 = var36;
+RET_LABEL35:(void)0;
 }
 }
-if (likely(varonce29!=NULL)) {
-var30 = varonce29;
+if (likely(varonce37!=NULL)) {
+var38 = varonce37;
 } else {
-var31 = "void* val;";
-var32 = core__flat___NativeString___to_s_full(var31, 10l, 10l);
-var30 = var32;
-varonce29 = var30;
+var39 = "void* val;";
+var41 = (val*)(10l<<2|1);
+var42 = (val*)(10l<<2|1);
+var43 = (val*)((long)(0)<<2|3);
+var44 = (val*)((long)(0)<<2|3);
+var40 = core__flat___CString___to_s_unsafe(var39, var41, var42, var43, var44);
+var38 = var40;
+varonce37 = var38;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var26, var30); /* Direct call abstract_compiler#CodeWriter#add_decl on <var26:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var34, var38); /* Direct call abstract_compiler$CodeWriter$add_decl on <var34:CodeWriter>*/
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
-var35 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
-if (unlikely(var35 == NULL)) {
+{ /* Inline separate_compiler$SeparateCompiler$box_kinds (self) on <self:SeparateCompiler> */
+var47 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
+if (unlikely(var47 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 264);
 fatal_exit(1);
 }
-var33 = var35;
-RET_LABEL34:(void)0;
+var45 = var47;
+RET_LABEL46:(void)0;
 }
 }
-var_ = var33;
+var_ = var45;
 {
-var36 = core___core__HashMap___core__abstract_collection__MapRead__iterator(var_);
+var48 = core___core__HashMap___core__abstract_collection__MapRead__iterator(var_);
 }
-var_37 = var36;
+var_49 = var48;
 for(;;) {
 {
-var38 = ((short int(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_37); /* is_ok on <var_37:MapIterator[MClass, Int]>*/
+var50 = ((short int(*)(val* self))((((long)var_49&3)?class_info[((long)var_49&3)]:var_49->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_49); /* is_ok on <var_49:MapIterator[MClass, Int]>*/
 }
-if (var38){
+if (var50){
 } else {
 goto BREAK_label;
 }
 {
-var39 = ((val*(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_37); /* key on <var_37:MapIterator[MClass, Int]>*/
+var51 = ((val*(*)(val* self))((((long)var_49&3)?class_info[((long)var_49&3)]:var_49->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_49); /* key on <var_49:MapIterator[MClass, Int]>*/
 }
-var_c = var39;
+var_c = var51;
 {
-var40 = ((val*(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_37); /* item on <var_37:MapIterator[MClass, Int]>*/
+var52 = ((val*(*)(val* self))((((long)var_49&3)?class_info[((long)var_49&3)]:var_49->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_49); /* item on <var_49:MapIterator[MClass, Int]>*/
 }
-var41 = (long)(var40)>>2;
-var_v = var41;
+var53 = (long)(var52)>>2;
+var_v = var53;
 {
-{ /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
-var44 = var_c->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_c:MClass> */
-if (unlikely(var44 == NULL)) {
+{ /* Inline model$MClass$mclass_type (var_c) on <var_c:MClass> */
+var56 = var_c->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_c:MClass> */
+if (unlikely(var56 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
 fatal_exit(1);
 }
-var42 = var44;
-RET_LABEL43:(void)0;
+var54 = var56;
+RET_LABEL55:(void)0;
 }
 }
-var_t = var42;
+var_t = var54;
 {
-{ /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
-var47 = var_t->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_t:MClassType> */
-if (unlikely(var47 == NULL)) {
+{ /* Inline model$MClassType$mclass (var_t) on <var_t:MClassType> */
+var59 = var_t->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_t:MClassType> */
+if (unlikely(var59 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
 fatal_exit(1);
 }
-var45 = var47;
-RET_LABEL46:(void)0;
+var57 = var59;
+RET_LABEL58:(void)0;
 }
 }
 {
-{ /* Inline model#MClass#name (var45) on <var45:MClass> */
-var50 = var45->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var45:MClass> */
-if (unlikely(var50 == NULL)) {
+{ /* Inline model$MClass$name (var57) on <var57:MClass> */
+var62 = var57->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var57:MClass> */
+if (unlikely(var62 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 385);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
 fatal_exit(1);
 }
-var48 = var50;
-RET_LABEL49:(void)0;
-}
+var60 = var62;
+RET_LABEL61:(void)0;
 }
-if (likely(varonce51!=NULL)) {
-var52 = varonce51;
+}
+if (likely(varonce63!=NULL)) {
+var64 = varonce63;
 } else {
-var53 = "Pointer";
-var54 = core__flat___NativeString___to_s_full(var53, 7l, 7l);
-var52 = var54;
-varonce51 = var52;
+var65 = "Pointer";
+var67 = (val*)(7l<<2|1);
+var68 = (val*)(7l<<2|1);
+var69 = (val*)((long)(0)<<2|3);
+var70 = (val*)((long)(0)<<2|3);
+var66 = core__flat___CString___to_s_unsafe(var65, var67, var68, var69, var70);
+var64 = var66;
+varonce63 = var64;
 }
 {
-var55 = ((short int(*)(val* self, val* p0))(var48->class->vft[COLOR_core__kernel__Object___61d_61d]))(var48, var52); /* == on <var48:String>*/
+var71 = ((short int(*)(val* self, val* p0))(var60->class->vft[COLOR_core__kernel__Object___61d_61d]))(var60, var64); /* == on <var60:String>*/
 }
-if (var55){
-goto BREAK_label56;
+if (var71){
+goto BREAK_label72;
 } else {
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var59 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var59 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var75 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var75 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var57 = var59;
-RET_LABEL58:(void)0;
+var73 = var75;
+RET_LABEL74:(void)0;
 }
 }
-if (unlikely(varonce60==NULL)) {
-var61 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
-if (likely(varonce62!=NULL)) {
-var63 = varonce62;
+if (unlikely(varonce76==NULL)) {
+var77 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
+if (likely(varonce78!=NULL)) {
+var79 = varonce78;
 } else {
-var64 = " ";
-var65 = core__flat___NativeString___to_s_full(var64, 1l, 1l);
-var63 = var65;
-varonce62 = var63;
+var80 = " ";
+var82 = (val*)(1l<<2|1);
+var83 = (val*)(1l<<2|1);
+var84 = (val*)((long)(0)<<2|3);
+var85 = (val*)((long)(0)<<2|3);
+var81 = core__flat___CString___to_s_unsafe(var80, var82, var83, var84, var85);
+var79 = var81;
+varonce78 = var79;
 }
-((struct instance_core__NativeArray*)var61)->values[1]=var63;
-if (likely(varonce66!=NULL)) {
-var67 = varonce66;
+((struct instance_core__NativeArray*)var77)->values[1]=var79;
+if (likely(varonce86!=NULL)) {
+var87 = varonce86;
 } else {
-var68 = ";";
-var69 = core__flat___NativeString___to_s_full(var68, 1l, 1l);
-var67 = var69;
-varonce66 = var67;
+var88 = ";";
+var90 = (val*)(1l<<2|1);
+var91 = (val*)(1l<<2|1);
+var92 = (val*)((long)(0)<<2|3);
+var93 = (val*)((long)(0)<<2|3);
+var89 = core__flat___CString___to_s_unsafe(var88, var90, var91, var92, var93);
+var87 = var89;
+varonce86 = var87;
 }
-((struct instance_core__NativeArray*)var61)->values[3]=var67;
+((struct instance_core__NativeArray*)var77)->values[3]=var87;
 } else {
-var61 = varonce60;
-varonce60 = NULL;
+var77 = varonce76;
+varonce76 = NULL;
 }
 {
-var70 = nitc__abstract_compiler___MClassType___MType__ctype_extern(var_t);
+var94 = nitc__abstract_compiler___MClassType___MType__ctype_extern(var_t);
 }
-((struct instance_core__NativeArray*)var61)->values[0]=var70;
+((struct instance_core__NativeArray*)var77)->values[0]=var94;
 {
-var71 = nitc__abstract_compiler___MClassType___MType__ctypename(var_t);
+var95 = nitc__abstract_compiler___MClassType___MType__ctypename(var_t);
 }
-((struct instance_core__NativeArray*)var61)->values[2]=var71;
+((struct instance_core__NativeArray*)var77)->values[2]=var95;
 {
-var72 = ((val*(*)(val* self))(var61->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var61); /* native_to_s on <var61:NativeArray[String]>*/
+var96 = ((val*(*)(val* self))(var77->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var77); /* native_to_s on <var77:NativeArray[String]>*/
 }
-varonce60 = var61;
+varonce76 = var77;
 {
-nitc___nitc__CodeWriter___add_decl(var57, var72); /* Direct call abstract_compiler#CodeWriter#add_decl on <var57:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var73, var96); /* Direct call abstract_compiler$CodeWriter$add_decl on <var73:CodeWriter>*/
 }
-BREAK_label56: (void)0;
+BREAK_label72: (void)0;
 {
-((void(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var_37->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_37); /* next on <var_37:MapIterator[MClass, Int]>*/
+((void(*)(val* self))((((long)var_49&3)?class_info[((long)var_49&3)]:var_49->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_49); /* next on <var_49:MapIterator[MClass, Int]>*/
 }
 }
 BREAK_label: (void)0;
 {
-{ /* Inline abstract_collection#MapIterator#finish (var_37) on <var_37:MapIterator[MClass, Int]> */
-RET_LABEL73:(void)0;
+{ /* Inline abstract_collection$MapIterator$finish (var_49) on <var_49:MapIterator[MClass, Int]> */
+RET_LABEL97:(void)0;
 }
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
-var76 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
-if (unlikely(var76 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
+var100 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
+if (unlikely(var100 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 585);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
 fatal_exit(1);
 }
-var74 = var76;
-RET_LABEL75:(void)0;
+var98 = var100;
+RET_LABEL99:(void)0;
 }
 }
-if (likely(varonce77!=NULL)) {
-var78 = varonce77;
+if (likely(varonce101!=NULL)) {
+var102 = varonce101;
 } else {
-var79 = "} nitattribute_t; /* general C type representing a Nit attribute. */";
-var80 = core__flat___NativeString___to_s_full(var79, 68l, 68l);
-var78 = var80;
-varonce77 = var78;
+var103 = "} nitattribute_t; /* general C type representing a Nit attribute. */";
+var105 = (val*)(68l<<2|1);
+var106 = (val*)(68l<<2|1);
+var107 = (val*)((long)(0)<<2|3);
+var108 = (val*)((long)(0)<<2|3);
+var104 = core__flat___CString___to_s_unsafe(var103, var105, var106, var107, var108);
+var102 = var104;
+varonce101 = var102;
 }
 {
-nitc___nitc__CodeWriter___add_decl(var74, var78); /* Direct call abstract_compiler#CodeWriter#add_decl on <var74:CodeWriter>*/
+nitc___nitc__CodeWriter___add_decl(var98, var102); /* Direct call abstract_compiler$CodeWriter$add_decl on <var98:CodeWriter>*/
 }
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: SeparateCompiler) */
+/* method separate_compiler$SeparateCompiler$compile_box_kinds for (self: SeparateCompiler) */
 void nitc___nitc__SeparateCompiler___compile_box_kinds(val* self) {
 val* var /* : Array[String] */;
 val* var_ /* var : Array[String] */;
 static val* varonce;
 val* var1 /* : String */;
-char* var2 /* : NativeString */;
+char* var2 /* : CString */;
 val* var3 /* : String */;
-static val* varonce4;
-val* var5 /* : String */;
-char* var6 /* : NativeString */;
-val* var7 /* : String */;
+val* var4 /* : nullable Int */;
+val* var5 /* : nullable Int */;
+val* var6 /* : nullable Bool */;
+val* var7 /* : nullable Bool */;
 static val* varonce8;
 val* var9 /* : String */;
-char* var10 /* : NativeString */;
+char* var10 /* : CString */;
 val* var11 /* : String */;
-static val* varonce12;
-val* var13 /* : String */;
-char* var14 /* : NativeString */;
-val* var15 /* : String */;
+val* var12 /* : nullable Int */;
+val* var13 /* : nullable Int */;
+val* var14 /* : nullable Bool */;
+val* var15 /* : nullable Bool */;
 static val* varonce16;
 val* var17 /* : String */;
-char* var18 /* : NativeString */;
+char* var18 /* : CString */;
 val* var19 /* : String */;
-static val* varonce20;
-val* var21 /* : String */;
-char* var22 /* : NativeString */;
-val* var23 /* : String */;
+val* var20 /* : nullable Int */;
+val* var21 /* : nullable Int */;
+val* var22 /* : nullable Bool */;
+val* var23 /* : nullable Bool */;
 static val* varonce24;
 val* var25 /* : String */;
-char* var26 /* : NativeString */;
+char* var26 /* : CString */;
 val* var27 /* : String */;
-static val* varonce28;
-val* var29 /* : String */;
-char* var30 /* : NativeString */;
-val* var31 /* : String */;
+val* var28 /* : nullable Int */;
+val* var29 /* : nullable Int */;
+val* var30 /* : nullable Bool */;
+val* var31 /* : nullable Bool */;
 static val* varonce32;
 val* var33 /* : String */;
-char* var34 /* : NativeString */;
+char* var34 /* : CString */;
 val* var35 /* : String */;
-static val* varonce36;
-val* var37 /* : String */;
-char* var38 /* : NativeString */;
-val* var39 /* : String */;
+val* var36 /* : nullable Int */;
+val* var37 /* : nullable Int */;
+val* var38 /* : nullable Bool */;
+val* var39 /* : nullable Bool */;
 static val* varonce40;
 val* var41 /* : String */;
-char* var42 /* : NativeString */;
+char* var42 /* : CString */;
 val* var43 /* : String */;
-static val* varonce44;
-val* var45 /* : String */;
-char* var46 /* : NativeString */;
-val* var47 /* : String */;
-val* var_48 /* var : Array[String] */;
-val* var49 /* : IndexedIterator[nullable Object] */;
-val* var_50 /* var : IndexedIterator[String] */;
-short int var51 /* : Bool */;
-val* var52 /* : nullable Object */;
+val* var44 /* : nullable Int */;
+val* var45 /* : nullable Int */;
+val* var46 /* : nullable Bool */;
+val* var47 /* : nullable Bool */;
+static val* varonce48;
+val* var49 /* : String */;
+char* var50 /* : CString */;
+val* var51 /* : String */;
+val* var52 /* : nullable Int */;
+val* var53 /* : nullable Int */;
+val* var54 /* : nullable Bool */;
+val* var55 /* : nullable Bool */;
+static val* varonce56;
+val* var57 /* : String */;
+char* var58 /* : CString */;
+val* var59 /* : String */;
+val* var60 /* : nullable Int */;
+val* var61 /* : nullable Int */;
+val* var62 /* : nullable Bool */;
+val* var63 /* : nullable Bool */;
+static val* varonce64;
+val* var65 /* : String */;
+char* var66 /* : CString */;
+val* var67 /* : String */;
+val* var68 /* : nullable Int */;
+val* var69 /* : nullable Int */;
+val* var70 /* : nullable Bool */;
+val* var71 /* : nullable Bool */;
+static val* varonce72;
+val* var73 /* : String */;
+char* var74 /* : CString */;
+val* var75 /* : String */;
+val* var76 /* : nullable Int */;
+val* var77 /* : nullable Int */;
+val* var78 /* : nullable Bool */;
+val* var79 /* : nullable Bool */;
+static val* varonce80;
+val* var81 /* : String */;
+char* var82 /* : CString */;
+val* var83 /* : String */;
+val* var84 /* : nullable Int */;
+val* var85 /* : nullable Int */;
+val* var86 /* : nullable Bool */;
+val* var87 /* : nullable Bool */;
+static val* varonce88;
+val* var89 /* : String */;
+char* var90 /* : CString */;
+val* var91 /* : String */;
+val* var92 /* : nullable Int */;
+val* var93 /* : nullable Int */;
+val* var94 /* : nullable Bool */;
+val* var95 /* : nullable Bool */;
+val* var_96 /* var : Array[String] */;
+val* var97 /* : IndexedIterator[nullable Object] */;
+val* var_98 /* var : IndexedIterator[String] */;
+short int var99 /* : Bool */;
+val* var100 /* : nullable Object */;
 val* var_classname /* var classname: String */;
-val* var53 /* : MModule */;
-val* var55 /* : MModule */;
-val* var56 /* : Model */;
-val* var58 /* : Model */;
-val* var59 /* : nullable Array[MClass] */;
+val* var101 /* : MModule */;
+val* var103 /* : MModule */;
+val* var104 /* : Model */;
+val* var106 /* : Model */;
+val* var107 /* : nullable Array[MClass] */;
 val* var_classes /* var classes: nullable Array[MClass] */;
-short int var60 /* : Bool */;
-short int var61 /* : Bool */;
-long var63 /* : Int */;
-long var65 /* : Int */;
-short int var66 /* : Bool */;
-short int var68 /* : Bool */;
-val* var69 /* : Sys */;
-static val* varonce70;
-val* var71 /* : String */;
-char* var72 /* : NativeString */;
-val* var73 /* : String */;
-val* var74 /* : String */;
-val* var75 /* : HashMap[MClass, Int] */;
-val* var77 /* : HashMap[MClass, Int] */;
-val* var78 /* : nullable Object */;
-val* var79 /* : HashMap[MClass, Int] */;
-val* var81 /* : HashMap[MClass, Int] */;
-long var82 /* : Int */;
-long var83 /* : Int */;
-short int var85 /* : Bool */;
+short int var108 /* : Bool */;
+short int var109 /* : Bool */;
+long var111 /* : Int */;
+long var113 /* : Int */;
+short int var114 /* : Bool */;
+short int var116 /* : Bool */;
+val* var117 /* : Sys */;
+static val* varonce118;
+val* var119 /* : String */;
+char* var120 /* : CString */;
+val* var121 /* : String */;
+val* var122 /* : nullable Int */;
+val* var123 /* : nullable Int */;
+val* var124 /* : nullable Bool */;
+val* var125 /* : nullable Bool */;
+val* var126 /* : String */;
+val* var127 /* : HashMap[MClass, Int] */;
+val* var129 /* : HashMap[MClass, Int] */;
+val* var130 /* : nullable Object */;
+val* var131 /* : HashMap[MClass, Int] */;
+val* var133 /* : HashMap[MClass, Int] */;
+long var134 /* : Int */;
+long var135 /* : Int */;
+short int var137 /* : Bool */;
 int cltype;
 int idtype;
 const char* var_class_name;
-long var86 /* : Int */;
-val* var87 /* : nullable Object */;
+long var138 /* : Int */;
+val* var139 /* : nullable Object */;
 var = NEW_core__Array(&type_core__Array__core__String);
 {
-core___core__Array___with_capacity(var, 12l); /* Direct call array#Array#with_capacity on <var:Array[String]>*/
+core___core__Array___with_capacity(var, 12l); /* Direct call array$Array$with_capacity on <var:Array[String]>*/
 }
 var_ = var;
 if (likely(varonce!=NULL)) {
 var1 = varonce;
 } else {
 var2 = "Int";
-var3 = core__flat___NativeString___to_s_full(var2, 3l, 3l);
+var4 = (val*)(3l<<2|1);
+var5 = (val*)(3l<<2|1);
+var6 = (val*)((long)(0)<<2|3);
+var7 = (val*)((long)(0)<<2|3);
+var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
 var1 = var3;
 varonce = var1;
 }
 {
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var1); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
-}
-if (likely(varonce4!=NULL)) {
-var5 = varonce4;
-} else {
-var6 = "Bool";
-var7 = core__flat___NativeString___to_s_full(var6, 4l, 4l);
-var5 = var7;
-varonce4 = var5;
-}
-{
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var5); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var1); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
 }
 if (likely(varonce8!=NULL)) {
 var9 = varonce8;
 } else {
-var10 = "Byte";
-var11 = core__flat___NativeString___to_s_full(var10, 4l, 4l);
+var10 = "Bool";
+var12 = (val*)(4l<<2|1);
+var13 = (val*)(4l<<2|1);
+var14 = (val*)((long)(0)<<2|3);
+var15 = (val*)((long)(0)<<2|3);
+var11 = core__flat___CString___to_s_unsafe(var10, var12, var13, var14, var15);
 var9 = var11;
 varonce8 = var9;
 }
 {
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var9); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
-}
-if (likely(varonce12!=NULL)) {
-var13 = varonce12;
-} else {
-var14 = "Char";
-var15 = core__flat___NativeString___to_s_full(var14, 4l, 4l);
-var13 = var15;
-varonce12 = var13;
-}
-{
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var13); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var9); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
 }
 if (likely(varonce16!=NULL)) {
 var17 = varonce16;
 } else {
-var18 = "Float";
-var19 = core__flat___NativeString___to_s_full(var18, 5l, 5l);
+var18 = "Byte";
+var20 = (val*)(4l<<2|1);
+var21 = (val*)(4l<<2|1);
+var22 = (val*)((long)(0)<<2|3);
+var23 = (val*)((long)(0)<<2|3);
+var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
 var17 = var19;
 varonce16 = var17;
 }
 {
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var17); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
-}
-if (likely(varonce20!=NULL)) {
-var21 = varonce20;
-} else {
-var22 = "NativeString";
-var23 = core__flat___NativeString___to_s_full(var22, 12l, 12l);
-var21 = var23;
-varonce20 = var21;
-}
-{
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var21); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var17); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
 }
 if (likely(varonce24!=NULL)) {
 var25 = varonce24;
 } else {
-var26 = "Pointer";
-var27 = core__flat___NativeString___to_s_full(var26, 7l, 7l);
+var26 = "Char";
+var28 = (val*)(4l<<2|1);
+var29 = (val*)(4l<<2|1);
+var30 = (val*)((long)(0)<<2|3);
+var31 = (val*)((long)(0)<<2|3);
+var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
 var25 = var27;
 varonce24 = var25;
 }
 {
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var25); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
-}
-if (likely(varonce28!=NULL)) {
-var29 = varonce28;
-} else {
-var30 = "Int8";
-var31 = core__flat___NativeString___to_s_full(var30, 4l, 4l);
-var29 = var31;
-varonce28 = var29;
-}
-{
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var29); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var25); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
 }
 if (likely(varonce32!=NULL)) {
 var33 = varonce32;
 } else {
-var34 = "Int16";
-var35 = core__flat___NativeString___to_s_full(var34, 5l, 5l);
+var34 = "Float";
+var36 = (val*)(5l<<2|1);
+var37 = (val*)(5l<<2|1);
+var38 = (val*)((long)(0)<<2|3);
+var39 = (val*)((long)(0)<<2|3);
+var35 = core__flat___CString___to_s_unsafe(var34, var36, var37, var38, var39);
 var33 = var35;
 varonce32 = var33;
 }
 {
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var33); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
-}
-if (likely(varonce36!=NULL)) {
-var37 = varonce36;
-} else {
-var38 = "UInt16";
-var39 = core__flat___NativeString___to_s_full(var38, 6l, 6l);
-var37 = var39;
-varonce36 = var37;
-}
-{
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var37); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var33); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
 }
 if (likely(varonce40!=NULL)) {
 var41 = varonce40;
 } else {
-var42 = "Int32";
-var43 = core__flat___NativeString___to_s_full(var42, 5l, 5l);
+var42 = "CString";
+var44 = (val*)(7l<<2|1);
+var45 = (val*)(7l<<2|1);
+var46 = (val*)((long)(0)<<2|3);
+var47 = (val*)((long)(0)<<2|3);
+var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
 var41 = var43;
 varonce40 = var41;
 }
 {
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var41); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var41); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
 }
-if (likely(varonce44!=NULL)) {
-var45 = varonce44;
+if (likely(varonce48!=NULL)) {
+var49 = varonce48;
 } else {
-var46 = "UInt32";
-var47 = core__flat___NativeString___to_s_full(var46, 6l, 6l);
-var45 = var47;
-varonce44 = var45;
+var50 = "Pointer";
+var52 = (val*)(7l<<2|1);
+var53 = (val*)(7l<<2|1);
+var54 = (val*)((long)(0)<<2|3);
+var55 = (val*)((long)(0)<<2|3);
+var51 = core__flat___CString___to_s_unsafe(var50, var52, var53, var54, var55);
+var49 = var51;
+varonce48 = var49;
+}
+{
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var49); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
+}
+if (likely(varonce56!=NULL)) {
+var57 = varonce56;
+} else {
+var58 = "Int8";
+var60 = (val*)(4l<<2|1);
+var61 = (val*)(4l<<2|1);
+var62 = (val*)((long)(0)<<2|3);
+var63 = (val*)((long)(0)<<2|3);
+var59 = core__flat___CString___to_s_unsafe(var58, var60, var61, var62, var63);
+var57 = var59;
+varonce56 = var57;
 }
 {
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var45); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var57); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
 }
-var_48 = var_;
+if (likely(varonce64!=NULL)) {
+var65 = varonce64;
+} else {
+var66 = "Int16";
+var68 = (val*)(5l<<2|1);
+var69 = (val*)(5l<<2|1);
+var70 = (val*)((long)(0)<<2|3);
+var71 = (val*)((long)(0)<<2|3);
+var67 = core__flat___CString___to_s_unsafe(var66, var68, var69, var70, var71);
+var65 = var67;
+varonce64 = var65;
+}
+{
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var65); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
+}
+if (likely(varonce72!=NULL)) {
+var73 = varonce72;
+} else {
+var74 = "UInt16";
+var76 = (val*)(6l<<2|1);
+var77 = (val*)(6l<<2|1);
+var78 = (val*)((long)(0)<<2|3);
+var79 = (val*)((long)(0)<<2|3);
+var75 = core__flat___CString___to_s_unsafe(var74, var76, var77, var78, var79);
+var73 = var75;
+varonce72 = var73;
+}
+{
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var73); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
+}
+if (likely(varonce80!=NULL)) {
+var81 = varonce80;
+} else {
+var82 = "Int32";
+var84 = (val*)(5l<<2|1);
+var85 = (val*)(5l<<2|1);
+var86 = (val*)((long)(0)<<2|3);
+var87 = (val*)((long)(0)<<2|3);
+var83 = core__flat___CString___to_s_unsafe(var82, var84, var85, var86, var87);
+var81 = var83;
+varonce80 = var81;
+}
+{
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var81); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
+}
+if (likely(varonce88!=NULL)) {
+var89 = varonce88;
+} else {
+var90 = "UInt32";
+var92 = (val*)(6l<<2|1);
+var93 = (val*)(6l<<2|1);
+var94 = (val*)((long)(0)<<2|3);
+var95 = (val*)((long)(0)<<2|3);
+var91 = core__flat___CString___to_s_unsafe(var90, var92, var93, var94, var95);
+var89 = var91;
+varonce88 = var89;
+}
+{
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var89); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
+}
+var_96 = var_;
 {
-var49 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_48);
+var97 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_96);
 }
-var_50 = var49;
+var_98 = var97;
 for(;;) {
 {
-var51 = ((short int(*)(val* self))((((long)var_50&3)?class_info[((long)var_50&3)]:var_50->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_50); /* is_ok on <var_50:IndexedIterator[String]>*/
+var99 = ((short int(*)(val* self))((((long)var_98&3)?class_info[((long)var_98&3)]:var_98->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_98); /* is_ok on <var_98:IndexedIterator[String]>*/
 }
-if (var51){
+if (var99){
 } else {
 goto BREAK_label;
 }
 {
-var52 = ((val*(*)(val* self))((((long)var_50&3)?class_info[((long)var_50&3)]:var_50->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_50); /* item on <var_50:IndexedIterator[String]>*/
+var100 = ((val*(*)(val* self))((((long)var_98&3)?class_info[((long)var_98&3)]:var_98->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_98); /* item on <var_98:IndexedIterator[String]>*/
 }
-var_classname = var52;
+var_classname = var100;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
-var55 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
-if (unlikely(var55 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
+var103 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
+if (unlikely(var103 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
-var53 = var55;
-RET_LABEL54:(void)0;
+var101 = var103;
+RET_LABEL102:(void)0;
 }
 }
 {
-{ /* Inline mmodule#MModule#model (var53) on <var53:MModule> */
-var58 = var53->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var53:MModule> */
-if (unlikely(var58 == NULL)) {
+{ /* Inline mmodule$MModule$model (var101) on <var101:MModule> */
+var106 = var101->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var101:MModule> */
+if (unlikely(var106 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 77);
 fatal_exit(1);
 }
-var56 = var58;
-RET_LABEL57:(void)0;
+var104 = var106;
+RET_LABEL105:(void)0;
 }
 }
 {
-var59 = nitc__model___Model___get_mclasses_by_name(var56, var_classname);
+var107 = nitc__model___Model___get_mclasses_by_name(var104, var_classname);
 }
-var_classes = var59;
+var_classes = var107;
 if (var_classes == NULL) {
-var60 = 1; /* is null */
+var108 = 1; /* is null */
 } else {
-var60 = 0; /* arg is null but recv is not */
+var108 = 0; /* arg is null but recv is not */
 }
 if (0) {
-var61 = core___core__Array___core__kernel__Object___61d_61d(var_classes, ((val*)NULL));
-var60 = var61;
+var109 = core___core__Array___core__kernel__Object___61d_61d(var_classes, ((val*)NULL));
+var108 = var109;
 }
-if (var60){
-goto BREAK_label62;
+if (var108){
+goto BREAK_label110;
 } else {
 }
 {
-{ /* Inline array#AbstractArrayRead#length (var_classes) on <var_classes:nullable Array[MClass](Array[MClass])> */
-var65 = var_classes->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_classes:nullable Array[MClass](Array[MClass])> */
-var63 = var65;
-RET_LABEL64:(void)0;
+{ /* Inline array$AbstractArrayRead$length (var_classes) on <var_classes:nullable Array[MClass](Array[MClass])> */
+var113 = var_classes->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_classes:nullable Array[MClass](Array[MClass])> */
+var111 = var113;
+RET_LABEL112:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#== (var63,1l) on <var63:Int> */
-var68 = var63 == 1l;
-var66 = var68;
-goto RET_LABEL67;
-RET_LABEL67:(void)0;
+{ /* Inline kernel$Int$== (var111,1l) on <var111:Int> */
+var116 = var111 == 1l;
+var114 = var116;
+goto RET_LABEL115;
+RET_LABEL115:(void)0;
 }
 }
-if (unlikely(!var66)) {
-var69 = glob_sys;
-if (likely(varonce70!=NULL)) {
-var71 = varonce70;
+if (unlikely(!var114)) {
+var117 = glob_sys;
+if (likely(varonce118!=NULL)) {
+var119 = varonce118;
 } else {
-var72 = ", ";
-var73 = core__flat___NativeString___to_s_full(var72, 2l, 2l);
-var71 = var73;
-varonce70 = var71;
+var120 = ", ";
+var122 = (val*)(2l<<2|1);
+var123 = (val*)(2l<<2|1);
+var124 = (val*)((long)(0)<<2|3);
+var125 = (val*)((long)(0)<<2|3);
+var121 = core__flat___CString___to_s_unsafe(var120, var122, var123, var124, var125);
+var119 = var121;
+varonce118 = var119;
 }
 {
-var74 = core__abstract_text___Collection___join(var_classes, var71);
+var126 = core__abstract_text___Collection___join(var_classes, var119, ((val*)NULL));
 }
 {
-core__file___Sys___print(var69, var74); /* Direct call file#Sys#print on <var69:Sys>*/
+core__file___Sys___print_error(var117, var126); /* Direct call file$Sys$print_error on <var117:Sys>*/
+}
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
 }
 PRINT_ERROR("Runtime error: %s", "Assert failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 259);
 fatal_exit(1);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
-var77 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
-if (unlikely(var77 == NULL)) {
+{ /* Inline separate_compiler$SeparateCompiler$box_kinds (self) on <self:SeparateCompiler> */
+var129 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
+if (unlikely(var129 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 264);
 fatal_exit(1);
 }
-var75 = var77;
-RET_LABEL76:(void)0;
+var127 = var129;
+RET_LABEL128:(void)0;
 }
 }
 {
-var78 = core___core__SequenceRead___Collection__first(var_classes);
+var130 = core___core__SequenceRead___Collection__first(var_classes);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
-var81 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
-if (unlikely(var81 == NULL)) {
+{ /* Inline separate_compiler$SeparateCompiler$box_kinds (self) on <self:SeparateCompiler> */
+var133 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
+if (unlikely(var133 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 264);
 fatal_exit(1);
 }
-var79 = var81;
-RET_LABEL80:(void)0;
+var131 = var133;
+RET_LABEL132:(void)0;
 }
 }
 {
-var82 = core___core__HashMap___core__abstract_collection__MapRead__length(var79);
+var134 = core___core__HashMap___core__abstract_collection__MapRead__length(var131);
 }
 {
-{ /* Inline kernel#Int#+ (var82,1l) on <var82:Int> */
+{ /* Inline kernel$Int$+ (var134,1l) on <var134:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
-var85 = 1; /* easy <1l:Int> isa OTHER*/
-if (unlikely(!var85)) {
+var137 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var137)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
-var86 = var82 + 1l;
-var83 = var86;
-goto RET_LABEL84;
-RET_LABEL84:(void)0;
+var138 = var134 + 1l;
+var135 = var138;
+goto RET_LABEL136;
+RET_LABEL136:(void)0;
 }
 }
 {
-var87 = (val*)(var83<<2|1);
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var75, var78, var87); /* Direct call hash_collection#HashMap#[]= on <var75:HashMap[MClass, Int]>*/
+var139 = (val*)(var135<<2|1);
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var127, var130, var139); /* Direct call hash_collection$HashMap$[]= on <var127:HashMap[MClass, Int]>*/
 }
-BREAK_label62: (void)0;
+BREAK_label110: (void)0;
 {
-((void(*)(val* self))((((long)var_50&3)?class_info[((long)var_50&3)]:var_50->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_50); /* next on <var_50:IndexedIterator[String]>*/
+((void(*)(val* self))((((long)var_98&3)?class_info[((long)var_98&3)]:var_98->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_98); /* next on <var_98:IndexedIterator[String]>*/
 }
 }
 BREAK_label: (void)0;
 {
-((void(*)(val* self))((((long)var_50&3)?class_info[((long)var_50&3)]:var_50->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_50); /* finish on <var_50:IndexedIterator[String]>*/
+((void(*)(val* self))((((long)var_98&3)?class_info[((long)var_98&3)]:var_98->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_98); /* finish on <var_98:IndexedIterator[String]>*/
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#box_kinds for (self: SeparateCompiler): HashMap[MClass, Int] */
+/* method separate_compiler$SeparateCompiler$box_kinds for (self: SeparateCompiler): HashMap[MClass, Int] */
 val* nitc___nitc__SeparateCompiler___box_kinds(val* self) {
 val* var /* : HashMap[MClass, Int] */;
 val* var1 /* : HashMap[MClass, Int] */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 264);
 fatal_exit(1);
@@ -3316,7 +3958,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#box_kind_of for (self: SeparateCompiler, MClass): Int */
+/* method separate_compiler$SeparateCompiler$box_kind_of for (self: SeparateCompiler, MClass): Int */
 long nitc___nitc__SeparateCompiler___box_kind_of(val* self, val* p0) {
 long var /* : Int */;
 val* var_mclass /* var mclass: MClass */;
@@ -3325,49 +3967,60 @@ val* var3 /* : MClassType */;
 val* var4 /* : String */;
 static val* varonce;
 val* var5 /* : String */;
-char* var6 /* : NativeString */;
+char* var6 /* : CString */;
 val* var7 /* : String */;
-short int var8 /* : Bool */;
-short int var9 /* : Bool */;
-val* var10 /* : MClassKind */;
-val* var12 /* : MClassKind */;
-val* var13 /* : Sys */;
+val* var8 /* : nullable Int */;
+val* var9 /* : nullable Int */;
+val* var10 /* : nullable Bool */;
+val* var11 /* : nullable Bool */;
+short int var12 /* : Bool */;
+short int var13 /* : Bool */;
 val* var14 /* : MClassKind */;
-short int var15 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var17 /* : Bool */;
+val* var16 /* : MClassKind */;
+val* var17 /* : Sys */;
+val* var18 /* : MClassKind */;
 short int var19 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var21 /* : Bool */;
+short int var23 /* : Bool */;
 short int var_ /* var : Bool */;
-val* var20 /* : String */;
-val* var22 /* : String */;
-static val* varonce23;
 val* var24 /* : String */;
-char* var25 /* : NativeString */;
 val* var26 /* : String */;
-short int var27 /* : Bool */;
-val* var_other29 /* var other: nullable Object */;
-short int var30 /* : Bool */;
-short int var31 /* : Bool */;
-val* var32 /* : HashMap[MClass, Int] */;
-val* var34 /* : HashMap[MClass, Int] */;
-val* var35 /* : MModule */;
-val* var37 /* : MModule */;
-val* var38 /* : MClassType */;
-val* var39 /* : MClass */;
-val* var41 /* : MClass */;
-val* var42 /* : nullable Object */;
-long var43 /* : Int */;
-val* var44 /* : HashMap[MClass, Int] */;
-val* var46 /* : HashMap[MClass, Int] */;
-val* var47 /* : nullable Object */;
-long var48 /* : Int */;
+static val* varonce27;
+val* var28 /* : String */;
+char* var29 /* : CString */;
+val* var30 /* : String */;
+val* var31 /* : nullable Int */;
+val* var32 /* : nullable Int */;
+val* var33 /* : nullable Bool */;
+val* var34 /* : nullable Bool */;
+short int var35 /* : Bool */;
+val* var_other37 /* var other: nullable Object */;
+short int var38 /* : Bool */;
+short int var39 /* : Bool */;
+val* var40 /* : HashMap[MClass, Int] */;
+val* var42 /* : HashMap[MClass, Int] */;
+val* var43 /* : MModule */;
+val* var45 /* : MModule */;
+val* var46 /* : MClassType */;
+val* var47 /* : MClass */;
+val* var49 /* : MClass */;
+val* var50 /* : nullable Object */;
+long var51 /* : Int */;
+val* var52 /* : HashMap[MClass, Int] */;
+val* var54 /* : HashMap[MClass, Int] */;
+val* var55 /* : nullable Object */;
+long var56 /* : Int */;
 var_mclass = p0;
 {
-{ /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:MClass> */
+{ /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:MClass> */
 var3 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:MClass> */
 if (unlikely(var3 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
 fatal_exit(1);
 }
 var1 = var3;
@@ -3381,158 +4034,184 @@ if (likely(varonce!=NULL)) {
 var5 = varonce;
 } else {
 var6 = "val*";
-var7 = core__flat___NativeString___to_s_full(var6, 4l, 4l);
+var8 = (val*)(4l<<2|1);
+var9 = (val*)(4l<<2|1);
+var10 = (val*)((long)(0)<<2|3);
+var11 = (val*)((long)(0)<<2|3);
+var7 = core__flat___CString___to_s_unsafe(var6, var8, var9, var10, var11);
 var5 = var7;
 varonce = var5;
 }
 {
-var8 = ((short int(*)(val* self, val* p0))(var4->class->vft[COLOR_core__kernel__Object___61d_61d]))(var4, var5); /* == on <var4:String>*/
+var12 = ((short int(*)(val* self, val* p0))(var4->class->vft[COLOR_core__kernel__Object___61d_61d]))(var4, var5); /* == on <var4:String>*/
 }
-if (var8){
+if (var12){
 var = 0l;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
-var12 = var_mclass->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var_mclass:MClass> */
-if (unlikely(var12 == NULL)) {
+{ /* Inline model$MClass$kind (var_mclass) on <var_mclass:MClass> */
+var16 = var_mclass->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var_mclass:MClass> */
+if (unlikely(var16 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 459);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
 fatal_exit(1);
 }
-var10 = var12;
-RET_LABEL11:(void)0;
+var14 = var16;
+RET_LABEL15:(void)0;
 }
 }
-var13 = glob_sys;
+var17 = glob_sys;
 {
-var14 = nitc__model___core__Sys___extern_kind(var13);
+var18 = nitc__model___core__Sys___extern_kind(var17);
 }
 {
-{ /* Inline kernel#Object#== (var10,var14) on <var10:MClassKind> */
-var_other = var14;
+{ /* Inline kernel$Object$== (var14,var18) on <var14:MClassKind> */
+var_other = var18;
 {
-{ /* Inline kernel#Object#is_same_instance (var10,var_other) on <var10:MClassKind> */
-var19 = var10 == var_other;
-var17 = var19;
-goto RET_LABEL18;
-RET_LABEL18:(void)0;
+{ /* Inline kernel$Object$is_same_instance (var14,var_other) on <var14:MClassKind> */
+var23 = var14 == var_other;
+var21 = var23;
+goto RET_LABEL22;
+RET_LABEL22:(void)0;
 }
 }
-var15 = var17;
-goto RET_LABEL16;
-RET_LABEL16:(void)0;
+var19 = var21;
+goto RET_LABEL20;
+RET_LABEL20:(void)0;
 }
 }
-var_ = var15;
-if (var15){
+var_ = var19;
+if (var19){
 {
-{ /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
-var22 = var_mclass->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var_mclass:MClass> */
-if (unlikely(var22 == NULL)) {
+{ /* Inline model$MClass$name (var_mclass) on <var_mclass:MClass> */
+var26 = var_mclass->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var_mclass:MClass> */
+if (unlikely(var26 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 385);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
 fatal_exit(1);
 }
-var20 = var22;
-RET_LABEL21:(void)0;
+var24 = var26;
+RET_LABEL25:(void)0;
 }
 }
-if (likely(varonce23!=NULL)) {
-var24 = varonce23;
+if (likely(varonce27!=NULL)) {
+var28 = varonce27;
 } else {
-var25 = "NativeString";
-var26 = core__flat___NativeString___to_s_full(var25, 12l, 12l);
-var24 = var26;
-varonce23 = var24;
+var29 = "CString";
+var31 = (val*)(7l<<2|1);
+var32 = (val*)(7l<<2|1);
+var33 = (val*)((long)(0)<<2|3);
+var34 = (val*)((long)(0)<<2|3);
+var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
+var28 = var30;
+varonce27 = var28;
 }
 {
-{ /* Inline kernel#Object#!= (var20,var24) on <var20:String> */
-var_other29 = var24;
+{ /* Inline kernel$Object$!= (var24,var28) on <var24:String> */
+var_other37 = var28;
 {
-var30 = ((short int(*)(val* self, val* p0))(var20->class->vft[COLOR_core__kernel__Object___61d_61d]))(var20, var_other29); /* == on <var20:String>*/
+var38 = ((short int(*)(val* self, val* p0))(var24->class->vft[COLOR_core__kernel__Object___61d_61d]))(var24, var_other37); /* == on <var24:String>*/
 }
-var31 = !var30;
-var27 = var31;
-goto RET_LABEL28;
-RET_LABEL28:(void)0;
+var39 = !var38;
+var35 = var39;
+goto RET_LABEL36;
+RET_LABEL36:(void)0;
 }
 }
-var9 = var27;
+var13 = var35;
 } else {
-var9 = var_;
+var13 = var_;
 }
-if (var9){
+if (var13){
 {
-{ /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
-var34 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
-if (unlikely(var34 == NULL)) {
+{ /* Inline separate_compiler$SeparateCompiler$box_kinds (self) on <self:SeparateCompiler> */
+var42 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
+if (unlikely(var42 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 264);
 fatal_exit(1);
 }
-var32 = var34;
-RET_LABEL33:(void)0;
+var40 = var42;
+RET_LABEL41:(void)0;
 }
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
-var37 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
-if (unlikely(var37 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
+var45 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
+if (unlikely(var45 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
-var35 = var37;
-RET_LABEL36:(void)0;
+var43 = var45;
+RET_LABEL44:(void)0;
 }
 }
 {
-var38 = nitc__model___MModule___pointer_type(var35);
+var46 = nitc__model___MModule___pointer_type(var43);
 }
 {
-{ /* Inline model#MClassType#mclass (var38) on <var38:MClassType> */
-var41 = var38->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var38:MClassType> */
-if (unlikely(var41 == NULL)) {
+{ /* Inline model$MClassType$mclass (var46) on <var46:MClassType> */
+var49 = var46->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var46:MClassType> */
+if (unlikely(var49 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
 fatal_exit(1);
 }
-var39 = var41;
-RET_LABEL40:(void)0;
+var47 = var49;
+RET_LABEL48:(void)0;
 }
 }
 {
-var42 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var32, var39);
+var50 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var40, var47);
 }
-var43 = (long)(var42)>>2;
-var = var43;
+var51 = (long)(var50)>>2;
+var = var51;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
-var46 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
-if (unlikely(var46 == NULL)) {
+{ /* Inline separate_compiler$SeparateCompiler$box_kinds (self) on <self:SeparateCompiler> */
+var54 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
+if (unlikely(var54 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 264);
 fatal_exit(1);
 }
-var44 = var46;
-RET_LABEL45:(void)0;
+var52 = var54;
+RET_LABEL53:(void)0;
 }
 }
 {
-var47 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var44, var_mclass);
+var55 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var52, var_mclass);
 }
-var48 = (long)(var47)>>2;
-var = var48;
+var56 = (long)(var55)>>2;
+var = var56;
 goto RET_LABEL;
 }
 }
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#compile_color_consts for (self: SeparateCompiler, Map[Object, Int]) */
+/* method separate_compiler$SeparateCompiler$compile_color_consts for (self: SeparateCompiler, Map[Object, Int]) */
 void nitc___nitc__SeparateCompiler___compile_color_consts(val* self, val* p0) {
 val* var_colors /* var colors: Map[Object, Int] */;
 val* var /* : AbstractCompilerVisitor */;
@@ -3574,7 +4253,7 @@ var5 = ((val*(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2-
 var6 = (long)(var5)>>2;
 var_c = var6;
 {
-nitc___nitc__SeparateCompiler___compile_color_const(self, var_v, var_m, var_c); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_color_const(self, var_v, var_m, var_c); /* Direct call separate_compiler$SeparateCompiler$compile_color_const on <self:SeparateCompiler>*/
 }
 {
 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_2); /* next on <var_2:MapIterator[Object, Int]>*/
@@ -3582,13 +4261,13 @@ nitc___nitc__SeparateCompiler___compile_color_const(self, var_v, var_m, var_c);
 }
 BREAK_label: (void)0;
 {
-{ /* Inline abstract_collection#MapIterator#finish (var_2) on <var_2:MapIterator[Object, Int]> */
+{ /* Inline abstract_collection$MapIterator$finish (var_2) on <var_2:MapIterator[Object, Int]> */
 RET_LABEL7:(void)0;
 }
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#compile_color_const for (self: SeparateCompiler, SeparateCompilerVisitor, Object, Int) */
+/* method separate_compiler$SeparateCompiler$compile_color_const for (self: SeparateCompiler, SeparateCompilerVisitor, Object, Int) */
 void nitc___nitc__SeparateCompiler___compile_color_const(val* self, val* p0, val* p1, long p2) {
 val* var_v /* var v: SeparateCompilerVisitor */;
 val* var_m /* var m: Object */;
@@ -3613,118 +4292,177 @@ val* var19 /* : NativeArray[String] */;
 static val* varonce;
 static val* varonce20;
 val* var21 /* : String */;
-char* var22 /* : NativeString */;
+char* var22 /* : CString */;
 val* var23 /* : String */;
-static val* varonce24;
-val* var25 /* : String */;
-char* var26 /* : NativeString */;
-val* var27 /* : String */;
-val* var28 /* : String */;
+val* var24 /* : nullable Int */;
+val* var25 /* : nullable Int */;
+val* var26 /* : nullable Bool */;
+val* var27 /* : nullable Bool */;
+static val* varonce28;
 val* var29 /* : String */;
-val* var30 /* : String */;
-short int var31 /* : Bool */;
-val* var32 /* : ModelBuilder */;
-val* var34 /* : ModelBuilder */;
-val* var35 /* : ToolContext */;
-val* var37 /* : ToolContext */;
-val* var38 /* : OptionBool */;
-val* var40 /* : OptionBool */;
-val* var41 /* : nullable Object */;
-val* var43 /* : nullable Object */;
-short int var44 /* : Bool */;
-short int var45 /* : Bool */;
-short int var_ /* var : Bool */;
-val* var46 /* : AbstractCompiler */;
-val* var48 /* : AbstractCompiler */;
-val* var49 /* : Platform */;
-val* var51 /* : Platform */;
-short int var52 /* : Bool */;
-short int var53 /* : Bool */;
-val* var54 /* : String */;
-val* var56 /* : NativeArray[String] */;
-static val* varonce55;
-static val* varonce57;
-val* var58 /* : String */;
-char* var59 /* : NativeString */;
-val* var60 /* : String */;
-static val* varonce61;
+char* var30 /* : CString */;
+val* var31 /* : String */;
+val* var32 /* : nullable Int */;
+val* var33 /* : nullable Int */;
+val* var34 /* : nullable Bool */;
+val* var35 /* : nullable Bool */;
+val* var36 /* : String */;
+val* var37 /* : String */;
+val* var38 /* : String */;
+short int var39 /* : Bool */;
+val* var40 /* : ModelBuilder */;
+val* var42 /* : ModelBuilder */;
+val* var43 /* : ToolContext */;
+val* var45 /* : ToolContext */;
+val* var46 /* : OptionBool */;
+val* var48 /* : OptionBool */;
+val* var49 /* : nullable Object */;
+val* var51 /* : nullable Object */;
+short int var52 /* : Bool */;
+short int var53 /* : Bool */;
+short int var_ /* var : Bool */;
+val* var54 /* : AbstractCompiler */;
+val* var56 /* : AbstractCompiler */;
+val* var57 /* : Platform */;
+val* var59 /* : Platform */;
+short int var60 /* : Bool */;
+short int var61 /* : Bool */;
 val* var62 /* : String */;
-char* var63 /* : NativeString */;
-val* var64 /* : String */;
-val* var65 /* : String */;
+val* var64 /* : NativeArray[String] */;
+static val* varonce63;
+static val* varonce65;
 val* var66 /* : String */;
-val* var68 /* : NativeArray[String] */;
-static val* varonce67;
-static val* varonce69;
-val* var70 /* : String */;
-char* var71 /* : NativeString */;
-val* var72 /* : String */;
+char* var67 /* : CString */;
+val* var68 /* : String */;
+val* var69 /* : nullable Int */;
+val* var70 /* : nullable Int */;
+val* var71 /* : nullable Bool */;
+val* var72 /* : nullable Bool */;
 static val* varonce73;
 val* var74 /* : String */;
-char* var75 /* : NativeString */;
+char* var75 /* : CString */;
 val* var76 /* : String */;
-static val* varonce77;
-val* var78 /* : String */;
-char* var79 /* : NativeString */;
-val* var80 /* : String */;
+val* var77 /* : nullable Int */;
+val* var78 /* : nullable Int */;
+val* var79 /* : nullable Bool */;
+val* var80 /* : nullable Bool */;
 val* var81 /* : String */;
 val* var82 /* : String */;
-val* var83 /* : String */;
-val* var84 /* : String */;
-val* var86 /* : NativeArray[String] */;
+val* var84 /* : NativeArray[String] */;
+static val* varonce83;
 static val* varonce85;
-static val* varonce87;
+val* var86 /* : String */;
+char* var87 /* : CString */;
 val* var88 /* : String */;
-char* var89 /* : NativeString */;
-val* var90 /* : String */;
-static val* varonce91;
-val* var92 /* : String */;
-char* var93 /* : NativeString */;
+val* var89 /* : nullable Int */;
+val* var90 /* : nullable Int */;
+val* var91 /* : nullable Bool */;
+val* var92 /* : nullable Bool */;
+static val* varonce93;
 val* var94 /* : String */;
-static val* varonce95;
+char* var95 /* : CString */;
 val* var96 /* : String */;
-char* var97 /* : NativeString */;
-val* var98 /* : String */;
-static val* varonce99;
-val* var100 /* : String */;
-char* var101 /* : NativeString */;
+val* var97 /* : nullable Int */;
+val* var98 /* : nullable Int */;
+val* var99 /* : nullable Bool */;
+val* var100 /* : nullable Bool */;
+static val* varonce101;
 val* var102 /* : String */;
-val* var103 /* : String */;
+char* var103 /* : CString */;
 val* var104 /* : String */;
-val* var105 /* : String */;
-val* var106 /* : String */;
-long var107 /* : Int */;
-long var109 /* : Int */;
-short int var110 /* : Bool */;
-short int var112 /* : Bool */;
-val* var113 /* : Array[String] */;
-val* var115 /* : Array[String] */;
-val* var117 /* : NativeArray[String] */;
-static val* varonce116;
-static val* varonce118;
-val* var119 /* : String */;
-char* var120 /* : NativeString */;
-val* var121 /* : String */;
-static val* varonce122;
-val* var123 /* : String */;
-char* var124 /* : NativeString */;
-val* var125 /* : String */;
-static val* varonce126;
-val* var127 /* : String */;
-char* var128 /* : NativeString */;
-val* var129 /* : String */;
-val* var130 /* : String */;
-val* var131 /* : String */;
+val* var105 /* : nullable Int */;
+val* var106 /* : nullable Int */;
+val* var107 /* : nullable Bool */;
+val* var108 /* : nullable Bool */;
+val* var109 /* : String */;
+val* var110 /* : String */;
+val* var111 /* : String */;
+val* var112 /* : String */;
+val* var114 /* : NativeArray[String] */;
+static val* varonce113;
+static val* varonce115;
+val* var116 /* : String */;
+char* var117 /* : CString */;
+val* var118 /* : String */;
+val* var119 /* : nullable Int */;
+val* var120 /* : nullable Int */;
+val* var121 /* : nullable Bool */;
+val* var122 /* : nullable Bool */;
+static val* varonce123;
+val* var124 /* : String */;
+char* var125 /* : CString */;
+val* var126 /* : String */;
+val* var127 /* : nullable Int */;
+val* var128 /* : nullable Int */;
+val* var129 /* : nullable Bool */;
+val* var130 /* : nullable Bool */;
+static val* varonce131;
 val* var132 /* : String */;
-val* var133 /* : HashSet[Object] */;
-val* var135 /* : HashSet[Object] */;
+char* var133 /* : CString */;
+val* var134 /* : String */;
+val* var135 /* : nullable Int */;
+val* var136 /* : nullable Int */;
+val* var137 /* : nullable Bool */;
+val* var138 /* : nullable Bool */;
+static val* varonce139;
+val* var140 /* : String */;
+char* var141 /* : CString */;
+val* var142 /* : String */;
+val* var143 /* : nullable Int */;
+val* var144 /* : nullable Int */;
+val* var145 /* : nullable Bool */;
+val* var146 /* : nullable Bool */;
+val* var147 /* : String */;
+val* var148 /* : String */;
+val* var149 /* : String */;
+val* var150 /* : String */;
+long var151 /* : Int */;
+long var153 /* : Int */;
+short int var154 /* : Bool */;
+short int var156 /* : Bool */;
+val* var157 /* : Array[String] */;
+val* var159 /* : Array[String] */;
+val* var161 /* : NativeArray[String] */;
+static val* varonce160;
+static val* varonce162;
+val* var163 /* : String */;
+char* var164 /* : CString */;
+val* var165 /* : String */;
+val* var166 /* : nullable Int */;
+val* var167 /* : nullable Int */;
+val* var168 /* : nullable Bool */;
+val* var169 /* : nullable Bool */;
+static val* varonce170;
+val* var171 /* : String */;
+char* var172 /* : CString */;
+val* var173 /* : String */;
+val* var174 /* : nullable Int */;
+val* var175 /* : nullable Int */;
+val* var176 /* : nullable Bool */;
+val* var177 /* : nullable Bool */;
+static val* varonce178;
+val* var179 /* : String */;
+char* var180 /* : CString */;
+val* var181 /* : String */;
+val* var182 /* : nullable Int */;
+val* var183 /* : nullable Int */;
+val* var184 /* : nullable Bool */;
+val* var185 /* : nullable Bool */;
+val* var186 /* : String */;
+val* var187 /* : String */;
+val* var188 /* : String */;
+val* var189 /* : HashSet[Object] */;
+val* var191 /* : HashSet[Object] */;
 var_v = p0;
 var_m = p1;
 var_color = p2;
 {
-{ /* Inline separate_compiler#SeparateCompiler#color_consts_done (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$color_consts_done (self) on <self:SeparateCompiler> */
 var2 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___color_consts_done].val; /* _color_consts_done on <self:SeparateCompiler> */
 if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 308);
 fatal_exit(1);
@@ -3750,11 +4488,14 @@ var4 = (((long)var_m&3)?type_info[((long)var_m&3)]:var_m->type)->type_table[clty
 }
 if (var4){
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
 var7 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
 if (unlikely(var7 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
 var5 = var7;
@@ -3762,9 +4503,12 @@ RET_LABEL6:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var5) on <var5:ModelBuilder> */
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var5) on <var5:ModelBuilder> */
 var10 = var5->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var5:ModelBuilder> */
 if (unlikely(var10 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
@@ -3774,9 +4518,12 @@ RET_LABEL9:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (var8) on <var8:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_inline_coloring_numbers (var8) on <var8:ToolContext> */
 var13 = var8->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_inline_coloring_numbers].val; /* _opt_inline_coloring_numbers on <var8:ToolContext> */
 if (unlikely(var13 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 46);
 fatal_exit(1);
@@ -3786,7 +4533,7 @@ RET_LABEL12:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var11) on <var11:OptionBool> */
+{ /* Inline opts$Option$value (var11) on <var11:OptionBool> */
 var16 = var11->attrs[COLOR_opts__Option___value].val; /* _value on <var11:OptionBool> */
 var14 = var16;
 RET_LABEL15:(void)0;
@@ -3798,380 +4545,463 @@ if (var17){
 var18 = nitc__separate_compiler___MEntity___const_color(var_m);
 }
 if (unlikely(varonce==NULL)) {
-var19 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
+var19 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
 if (likely(varonce20!=NULL)) {
 var21 = varonce20;
 } else {
 var22 = "#define ";
-var23 = core__flat___NativeString___to_s_full(var22, 8l, 8l);
+var24 = (val*)(8l<<2|1);
+var25 = (val*)(8l<<2|1);
+var26 = (val*)((long)(0)<<2|3);
+var27 = (val*)((long)(0)<<2|3);
+var23 = core__flat___CString___to_s_unsafe(var22, var24, var25, var26, var27);
 var21 = var23;
 varonce20 = var21;
 }
 ((struct instance_core__NativeArray*)var19)->values[0]=var21;
-if (likely(varonce24!=NULL)) {
-var25 = varonce24;
+if (likely(varonce28!=NULL)) {
+var29 = varonce28;
 } else {
-var26 = " ";
-var27 = core__flat___NativeString___to_s_full(var26, 1l, 1l);
-var25 = var27;
-varonce24 = var25;
+var30 = " ";
+var32 = (val*)(1l<<2|1);
+var33 = (val*)(1l<<2|1);
+var34 = (val*)((long)(0)<<2|3);
+var35 = (val*)((long)(0)<<2|3);
+var31 = core__flat___CString___to_s_unsafe(var30, var32, var33, var34, var35);
+var29 = var31;
+varonce28 = var29;
 }
-((struct instance_core__NativeArray*)var19)->values[2]=var25;
+((struct instance_core__NativeArray*)var19)->values[2]=var29;
 } else {
 var19 = varonce;
 varonce = NULL;
 }
 {
-var28 = nitc__separate_compiler___MEntity___const_color(var_m);
+var36 = nitc__separate_compiler___MEntity___const_color(var_m);
 }
-((struct instance_core__NativeArray*)var19)->values[1]=var28;
-var29 = core__flat___Int___core__abstract_text__Object__to_s(var_color);
-((struct instance_core__NativeArray*)var19)->values[3]=var29;
+((struct instance_core__NativeArray*)var19)->values[1]=var36;
+var37 = core__flat___Int___core__abstract_text__Object__to_s(var_color);
+((struct instance_core__NativeArray*)var19)->values[3]=var37;
 {
-var30 = ((val*(*)(val* self))(var19->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var19); /* native_to_s on <var19:NativeArray[String]>*/
+var38 = ((val*(*)(val* self))(var19->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var19); /* native_to_s on <var19:NativeArray[String]>*/
 }
 varonce = var19;
 {
-nitc___nitc__AbstractCompiler___provide_declaration(self, var18, var30); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
+nitc___nitc__AbstractCompiler___provide_declaration(self, var18, var38); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
 }
 } else {
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
-var34 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
-if (unlikely(var34 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
+var42 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
+if (unlikely(var42 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
-var32 = var34;
-RET_LABEL33:(void)0;
+var40 = var42;
+RET_LABEL41:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var32) on <var32:ModelBuilder> */
-var37 = var32->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var32:ModelBuilder> */
-if (unlikely(var37 == NULL)) {
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var40) on <var40:ModelBuilder> */
+var45 = var40->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var40:ModelBuilder> */
+if (unlikely(var45 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
 }
-var35 = var37;
-RET_LABEL36:(void)0;
+var43 = var45;
+RET_LABEL44:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_colors_are_symbols (var35) on <var35:ToolContext> */
-var40 = var35->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_colors_are_symbols].val; /* _opt_colors_are_symbols on <var35:ToolContext> */
-if (unlikely(var40 == NULL)) {
+{ /* Inline separate_compiler$ToolContext$opt_colors_are_symbols (var43) on <var43:ToolContext> */
+var48 = var43->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_colors_are_symbols].val; /* _opt_colors_are_symbols on <var43:ToolContext> */
+if (unlikely(var48 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colors_are_symbols");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 35);
 fatal_exit(1);
 }
-var38 = var40;
-RET_LABEL39:(void)0;
+var46 = var48;
+RET_LABEL47:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var38) on <var38:OptionBool> */
-var43 = var38->attrs[COLOR_opts__Option___value].val; /* _value on <var38:OptionBool> */
-var41 = var43;
-RET_LABEL42:(void)0;
+{ /* Inline opts$Option$value (var46) on <var46:OptionBool> */
+var51 = var46->attrs[COLOR_opts__Option___value].val; /* _value on <var46:OptionBool> */
+var49 = var51;
+RET_LABEL50:(void)0;
 }
 }
-var44 = (short int)((long)(var41)>>2);
-var45 = !var44;
-var_ = var45;
-if (var45){
-var31 = var_;
+var52 = (short int)((long)(var49)>>2);
+var53 = !var52;
+var_ = var53;
+if (var53){
+var39 = var_;
 } else {
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:SeparateCompilerVisitor> */
-var48 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:SeparateCompilerVisitor> */
-if (unlikely(var48 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:SeparateCompilerVisitor> */
+var56 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:SeparateCompilerVisitor> */
+if (unlikely(var56 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
 fatal_exit(1);
 }
-var46 = var48;
-RET_LABEL47:(void)0;
+var54 = var56;
+RET_LABEL55:(void)0;
 }
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#target_platform (var46) on <var46:AbstractCompiler(SeparateCompiler)> */
-var51 = var46->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___target_platform].val; /* _target_platform on <var46:AbstractCompiler(SeparateCompiler)> */
-if (unlikely(var51 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$target_platform (var54) on <var54:AbstractCompiler(SeparateCompiler)> */
+var59 = var54->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___target_platform].val; /* _target_platform on <var54:AbstractCompiler(SeparateCompiler)> */
+if (unlikely(var59 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target_platform");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 549);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 563);
 fatal_exit(1);
 }
-var49 = var51;
-RET_LABEL50:(void)0;
-}
-}
-{
-var52 = nitc___nitc__Platform___supports_linker_script(var49);
-}
-var53 = !var52;
-var31 = var53;
-}
-if (var31){
-{
-var54 = nitc__separate_compiler___MEntity___const_color(var_m);
-}
-if (unlikely(varonce55==NULL)) {
-var56 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce57!=NULL)) {
-var58 = varonce57;
-} else {
-var59 = "extern const int ";
-var60 = core__flat___NativeString___to_s_full(var59, 17l, 17l);
-var58 = var60;
-varonce57 = var58;
-}
-((struct instance_core__NativeArray*)var56)->values[0]=var58;
-if (likely(varonce61!=NULL)) {
-var62 = varonce61;
-} else {
-var63 = ";";
-var64 = core__flat___NativeString___to_s_full(var63, 1l, 1l);
-var62 = var64;
-varonce61 = var62;
+var57 = var59;
+RET_LABEL58:(void)0;
 }
-((struct instance_core__NativeArray*)var56)->values[2]=var62;
-} else {
-var56 = varonce55;
-varonce55 = NULL;
 }
 {
-var65 = nitc__separate_compiler___MEntity___const_color(var_m);
+var60 = nitc___nitc__Platform___supports_linker_script(var57);
 }
-((struct instance_core__NativeArray*)var56)->values[1]=var65;
-{
-var66 = ((val*(*)(val* self))(var56->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var56); /* native_to_s on <var56:NativeArray[String]>*/
+var61 = !var60;
+var39 = var61;
 }
-varonce55 = var56;
+if (var39){
 {
-nitc___nitc__AbstractCompiler___provide_declaration(self, var54, var66); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
+var62 = nitc__separate_compiler___MEntity___const_color(var_m);
 }
-if (unlikely(varonce67==NULL)) {
-var68 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
-if (likely(varonce69!=NULL)) {
-var70 = varonce69;
+if (unlikely(varonce63==NULL)) {
+var64 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
+if (likely(varonce65!=NULL)) {
+var66 = varonce65;
 } else {
-var71 = "const int ";
-var72 = core__flat___NativeString___to_s_full(var71, 10l, 10l);
-var70 = var72;
-varonce69 = var70;
+var67 = "extern const int ";
+var69 = (val*)(17l<<2|1);
+var70 = (val*)(17l<<2|1);
+var71 = (val*)((long)(0)<<2|3);
+var72 = (val*)((long)(0)<<2|3);
+var68 = core__flat___CString___to_s_unsafe(var67, var69, var70, var71, var72);
+var66 = var68;
+varonce65 = var66;
 }
-((struct instance_core__NativeArray*)var68)->values[0]=var70;
+((struct instance_core__NativeArray*)var64)->values[0]=var66;
 if (likely(varonce73!=NULL)) {
 var74 = varonce73;
 } else {
-var75 = " = ";
-var76 = core__flat___NativeString___to_s_full(var75, 3l, 3l);
+var75 = ";";
+var77 = (val*)(1l<<2|1);
+var78 = (val*)(1l<<2|1);
+var79 = (val*)((long)(0)<<2|3);
+var80 = (val*)((long)(0)<<2|3);
+var76 = core__flat___CString___to_s_unsafe(var75, var77, var78, var79, var80);
 var74 = var76;
 varonce73 = var74;
 }
-((struct instance_core__NativeArray*)var68)->values[2]=var74;
-if (likely(varonce77!=NULL)) {
-var78 = varonce77;
-} else {
-var79 = ";";
-var80 = core__flat___NativeString___to_s_full(var79, 1l, 1l);
-var78 = var80;
-varonce77 = var78;
-}
-((struct instance_core__NativeArray*)var68)->values[4]=var78;
+((struct instance_core__NativeArray*)var64)->values[2]=var74;
 } else {
-var68 = varonce67;
-varonce67 = NULL;
+var64 = varonce63;
+varonce63 = NULL;
 }
 {
 var81 = nitc__separate_compiler___MEntity___const_color(var_m);
 }
-((struct instance_core__NativeArray*)var68)->values[1]=var81;
-var82 = core__flat___Int___core__abstract_text__Object__to_s(var_color);
-((struct instance_core__NativeArray*)var68)->values[3]=var82;
+((struct instance_core__NativeArray*)var64)->values[1]=var81;
 {
-var83 = ((val*(*)(val* self))(var68->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var68); /* native_to_s on <var68:NativeArray[String]>*/
+var82 = ((val*(*)(val* self))(var64->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var64); /* native_to_s on <var64:NativeArray[String]>*/
 }
-varonce67 = var68;
+varonce63 = var64;
 {
-nitc___nitc__AbstractCompilerVisitor___add(var_v, var83); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
+nitc___nitc__AbstractCompiler___provide_declaration(self, var62, var82); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
 }
+if (unlikely(varonce83==NULL)) {
+var84 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
+if (likely(varonce85!=NULL)) {
+var86 = varonce85;
 } else {
-{
-var84 = nitc__separate_compiler___MEntity___const_color(var_m);
+var87 = "const int ";
+var89 = (val*)(10l<<2|1);
+var90 = (val*)(10l<<2|1);
+var91 = (val*)((long)(0)<<2|3);
+var92 = (val*)((long)(0)<<2|3);
+var88 = core__flat___CString___to_s_unsafe(var87, var89, var90, var91, var92);
+var86 = var88;
+varonce85 = var86;
 }
-if (unlikely(varonce85==NULL)) {
-var86 = NEW_core__NativeArray(7l, &type_core__NativeArray__core__String);
-if (likely(varonce87!=NULL)) {
-var88 = varonce87;
+((struct instance_core__NativeArray*)var84)->values[0]=var86;
+if (likely(varonce93!=NULL)) {
+var94 = varonce93;
 } else {
-var89 = "#define ";
-var90 = core__flat___NativeString___to_s_full(var89, 8l, 8l);
-var88 = var90;
-varonce87 = var88;
+var95 = " = ";
+var97 = (val*)(3l<<2|1);
+var98 = (val*)(3l<<2|1);
+var99 = (val*)((long)(0)<<2|3);
+var100 = (val*)((long)(0)<<2|3);
+var96 = core__flat___CString___to_s_unsafe(var95, var97, var98, var99, var100);
+var94 = var96;
+varonce93 = var94;
+}
+((struct instance_core__NativeArray*)var84)->values[2]=var94;
+if (likely(varonce101!=NULL)) {
+var102 = varonce101;
+} else {
+var103 = ";";
+var105 = (val*)(1l<<2|1);
+var106 = (val*)(1l<<2|1);
+var107 = (val*)((long)(0)<<2|3);
+var108 = (val*)((long)(0)<<2|3);
+var104 = core__flat___CString___to_s_unsafe(var103, var105, var106, var107, var108);
+var102 = var104;
+varonce101 = var102;
 }
-((struct instance_core__NativeArray*)var86)->values[0]=var88;
-if (likely(varonce91!=NULL)) {
-var92 = varonce91;
+((struct instance_core__NativeArray*)var84)->values[4]=var102;
 } else {
-var93 = " ((long)&X";
-var94 = core__flat___NativeString___to_s_full(var93, 10l, 10l);
-var92 = var94;
-varonce91 = var92;
+var84 = varonce83;
+varonce83 = NULL;
 }
-((struct instance_core__NativeArray*)var86)->values[2]=var92;
-if (likely(varonce95!=NULL)) {
-var96 = varonce95;
-} else {
-var97 = ")\nextern const void X";
-var98 = core__flat___NativeString___to_s_full(var97, 21l, 21l);
-var96 = var98;
-varonce95 = var96;
+{
+var109 = nitc__separate_compiler___MEntity___const_color(var_m);
+}
+((struct instance_core__NativeArray*)var84)->values[1]=var109;
+var110 = core__flat___Int___core__abstract_text__Object__to_s(var_color);
+((struct instance_core__NativeArray*)var84)->values[3]=var110;
+{
+var111 = ((val*(*)(val* self))(var84->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var84); /* native_to_s on <var84:NativeArray[String]>*/
 }
-((struct instance_core__NativeArray*)var86)->values[4]=var96;
-if (likely(varonce99!=NULL)) {
-var100 = varonce99;
+varonce83 = var84;
+{
+nitc___nitc__AbstractCompilerVisitor___add(var_v, var111); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
+}
+} else {
+{
+var112 = nitc__separate_compiler___MEntity___const_color(var_m);
+}
+if (unlikely(varonce113==NULL)) {
+var114 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
+if (likely(varonce115!=NULL)) {
+var116 = varonce115;
+} else {
+var117 = "#define ";
+var119 = (val*)(8l<<2|1);
+var120 = (val*)(8l<<2|1);
+var121 = (val*)((long)(0)<<2|3);
+var122 = (val*)((long)(0)<<2|3);
+var118 = core__flat___CString___to_s_unsafe(var117, var119, var120, var121, var122);
+var116 = var118;
+varonce115 = var116;
+}
+((struct instance_core__NativeArray*)var114)->values[0]=var116;
+if (likely(varonce123!=NULL)) {
+var124 = varonce123;
+} else {
+var125 = " ((long)&X";
+var127 = (val*)(10l<<2|1);
+var128 = (val*)(10l<<2|1);
+var129 = (val*)((long)(0)<<2|3);
+var130 = (val*)((long)(0)<<2|3);
+var126 = core__flat___CString___to_s_unsafe(var125, var127, var128, var129, var130);
+var124 = var126;
+varonce123 = var124;
+}
+((struct instance_core__NativeArray*)var114)->values[2]=var124;
+if (likely(varonce131!=NULL)) {
+var132 = varonce131;
+} else {
+var133 = ")\nextern const void X";
+var135 = (val*)(21l<<2|1);
+var136 = (val*)(21l<<2|1);
+var137 = (val*)((long)(0)<<2|3);
+var138 = (val*)((long)(0)<<2|3);
+var134 = core__flat___CString___to_s_unsafe(var133, var135, var136, var137, var138);
+var132 = var134;
+varonce131 = var132;
+}
+((struct instance_core__NativeArray*)var114)->values[4]=var132;
+if (likely(varonce139!=NULL)) {
+var140 = varonce139;
 } else {
-var101 = ";";
-var102 = core__flat___NativeString___to_s_full(var101, 1l, 1l);
-var100 = var102;
-varonce99 = var100;
+var141 = ";";
+var143 = (val*)(1l<<2|1);
+var144 = (val*)(1l<<2|1);
+var145 = (val*)((long)(0)<<2|3);
+var146 = (val*)((long)(0)<<2|3);
+var142 = core__flat___CString___to_s_unsafe(var141, var143, var144, var145, var146);
+var140 = var142;
+varonce139 = var140;
 }
-((struct instance_core__NativeArray*)var86)->values[6]=var100;
+((struct instance_core__NativeArray*)var114)->values[6]=var140;
 } else {
-var86 = varonce85;
-varonce85 = NULL;
+var114 = varonce113;
+varonce113 = NULL;
 }
 {
-var103 = nitc__separate_compiler___MEntity___const_color(var_m);
+var147 = nitc__separate_compiler___MEntity___const_color(var_m);
 }
-((struct instance_core__NativeArray*)var86)->values[1]=var103;
+((struct instance_core__NativeArray*)var114)->values[1]=var147;
 {
-var104 = nitc__separate_compiler___MEntity___const_color(var_m);
+var148 = nitc__separate_compiler___MEntity___const_color(var_m);
 }
-((struct instance_core__NativeArray*)var86)->values[3]=var104;
+((struct instance_core__NativeArray*)var114)->values[3]=var148;
 {
-var105 = nitc__separate_compiler___MEntity___const_color(var_m);
+var149 = nitc__separate_compiler___MEntity___const_color(var_m);
 }
-((struct instance_core__NativeArray*)var86)->values[5]=var105;
+((struct instance_core__NativeArray*)var114)->values[5]=var149;
 {
-var106 = ((val*(*)(val* self))(var86->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var86); /* native_to_s on <var86:NativeArray[String]>*/
+var150 = ((val*(*)(val* self))(var114->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var114); /* native_to_s on <var114:NativeArray[String]>*/
 }
-varonce85 = var86;
+varonce113 = var114;
 {
-nitc___nitc__AbstractCompiler___provide_declaration(self, var84, var106); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
+nitc___nitc__AbstractCompiler___provide_declaration(self, var112, var150); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
 }
 {
-{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */
-var109 = -1l;
-var107 = var109;
-goto RET_LABEL108;
-RET_LABEL108:(void)0;
+{ /* Inline kernel$Int$unary - (1l) on <1l:Int> */
+var153 = -1l;
+var151 = var153;
+goto RET_LABEL152;
+RET_LABEL152:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#== (var_color,var107) on <var_color:Int> */
-var112 = var_color == var107;
-var110 = var112;
-goto RET_LABEL111;
-RET_LABEL111:(void)0;
+{ /* Inline kernel$Int$== (var_color,var151) on <var_color:Int> */
+var156 = var_color == var151;
+var154 = var156;
+goto RET_LABEL155;
+RET_LABEL155:(void)0;
 }
 }
-if (var110){
+if (var154){
 var_color = 0l;
 } else {
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#linker_script (self) on <self:SeparateCompiler> */
-var115 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___linker_script].val; /* _linker_script on <self:SeparateCompiler> */
-if (unlikely(var115 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$linker_script (self) on <self:SeparateCompiler> */
+var159 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___linker_script].val; /* _linker_script on <self:SeparateCompiler> */
+if (unlikely(var159 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _linker_script");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 588);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 602);
 fatal_exit(1);
 }
-var113 = var115;
-RET_LABEL114:(void)0;
+var157 = var159;
+RET_LABEL158:(void)0;
 }
 }
-if (unlikely(varonce116==NULL)) {
-var117 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
-if (likely(varonce118!=NULL)) {
-var119 = varonce118;
+if (unlikely(varonce160==NULL)) {
+var161 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
+if (likely(varonce162!=NULL)) {
+var163 = varonce162;
 } else {
-var120 = "X";
-var121 = core__flat___NativeString___to_s_full(var120, 1l, 1l);
-var119 = var121;
-varonce118 = var119;
+var164 = "X";
+var166 = (val*)(1l<<2|1);
+var167 = (val*)(1l<<2|1);
+var168 = (val*)((long)(0)<<2|3);
+var169 = (val*)((long)(0)<<2|3);
+var165 = core__flat___CString___to_s_unsafe(var164, var166, var167, var168, var169);
+var163 = var165;
+varonce162 = var163;
 }
-((struct instance_core__NativeArray*)var117)->values[0]=var119;
-if (likely(varonce122!=NULL)) {
-var123 = varonce122;
+((struct instance_core__NativeArray*)var161)->values[0]=var163;
+if (likely(varonce170!=NULL)) {
+var171 = varonce170;
 } else {
-var124 = " = ";
-var125 = core__flat___NativeString___to_s_full(var124, 3l, 3l);
-var123 = var125;
-varonce122 = var123;
+var172 = " = ";
+var174 = (val*)(3l<<2|1);
+var175 = (val*)(3l<<2|1);
+var176 = (val*)((long)(0)<<2|3);
+var177 = (val*)((long)(0)<<2|3);
+var173 = core__flat___CString___to_s_unsafe(var172, var174, var175, var176, var177);
+var171 = var173;
+varonce170 = var171;
 }
-((struct instance_core__NativeArray*)var117)->values[2]=var123;
-if (likely(varonce126!=NULL)) {
-var127 = varonce126;
+((struct instance_core__NativeArray*)var161)->values[2]=var171;
+if (likely(varonce178!=NULL)) {
+var179 = varonce178;
 } else {
-var128 = ";";
-var129 = core__flat___NativeString___to_s_full(var128, 1l, 1l);
-var127 = var129;
-varonce126 = var127;
+var180 = ";";
+var182 = (val*)(1l<<2|1);
+var183 = (val*)(1l<<2|1);
+var184 = (val*)((long)(0)<<2|3);
+var185 = (val*)((long)(0)<<2|3);
+var181 = core__flat___CString___to_s_unsafe(var180, var182, var183, var184, var185);
+var179 = var181;
+varonce178 = var179;
 }
-((struct instance_core__NativeArray*)var117)->values[4]=var127;
+((struct instance_core__NativeArray*)var161)->values[4]=var179;
 } else {
-var117 = varonce116;
-varonce116 = NULL;
+var161 = varonce160;
+varonce160 = NULL;
 }
 {
-var130 = nitc__separate_compiler___MEntity___const_color(var_m);
+var186 = nitc__separate_compiler___MEntity___const_color(var_m);
 }
-((struct instance_core__NativeArray*)var117)->values[1]=var130;
-var131 = core__flat___Int___core__abstract_text__Object__to_s(var_color);
-((struct instance_core__NativeArray*)var117)->values[3]=var131;
+((struct instance_core__NativeArray*)var161)->values[1]=var186;
+var187 = core__flat___Int___core__abstract_text__Object__to_s(var_color);
+((struct instance_core__NativeArray*)var161)->values[3]=var187;
 {
-var132 = ((val*(*)(val* self))(var117->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var117); /* native_to_s on <var117:NativeArray[String]>*/
+var188 = ((val*(*)(val* self))(var161->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var161); /* native_to_s on <var161:NativeArray[String]>*/
 }
-varonce116 = var117;
+varonce160 = var161;
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var113, var132); /* Direct call array#Array#add on <var113:Array[String]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var157, var188); /* Direct call array$Array$add on <var157:Array[String]>*/
 }
 }
 }
 } else {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Aborted");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 303);
 fatal_exit(1);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#color_consts_done (self) on <self:SeparateCompiler> */
-var135 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___color_consts_done].val; /* _color_consts_done on <self:SeparateCompiler> */
-if (unlikely(var135 == NULL)) {
+{ /* Inline separate_compiler$SeparateCompiler$color_consts_done (self) on <self:SeparateCompiler> */
+var191 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___color_consts_done].val; /* _color_consts_done on <self:SeparateCompiler> */
+if (unlikely(var191 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 308);
 fatal_exit(1);
 }
-var133 = var135;
-RET_LABEL134:(void)0;
+var189 = var191;
+RET_LABEL190:(void)0;
 }
 }
 {
-core___core__HashSet___core__abstract_collection__SimpleCollection__add(var133, var_m); /* Direct call hash_collection#HashSet#add on <var133:HashSet[Object]>*/
+core___core__HashSet___core__abstract_collection__SimpleCollection__add(var189, var_m); /* Direct call hash_collection$HashSet$add on <var189:HashSet[Object]>*/
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#color_consts_done for (self: SeparateCompiler): HashSet[Object] */
+/* method separate_compiler$SeparateCompiler$color_consts_done for (self: SeparateCompiler): HashSet[Object] */
 val* nitc___nitc__SeparateCompiler___color_consts_done(val* self) {
 val* var /* : HashSet[Object] */;
 val* var1 /* : HashSet[Object] */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___color_consts_done].val; /* _color_consts_done on <self:SeparateCompiler> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 308);
 fatal_exit(1);
@@ -4180,12 +5010,15 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#class_conflict_graph for (self: SeparateCompiler): POSetConflictGraph[MClass] */
+/* method separate_compiler$SeparateCompiler$class_conflict_graph for (self: SeparateCompiler): POSetConflictGraph[MClass] */
 val* nitc___nitc__SeparateCompiler___class_conflict_graph(val* self) {
 val* var /* : POSetConflictGraph[MClass] */;
 val* var1 /* : POSetConflictGraph[MClass] */;
 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph].val; /* _class_conflict_graph on <self:SeparateCompiler> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 310);
 fatal_exit(1);
@@ -4194,12 +5027,12 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#class_conflict_graph= for (self: SeparateCompiler, POSetConflictGraph[MClass]) */
+/* method separate_compiler$SeparateCompiler$class_conflict_graph= for (self: SeparateCompiler, POSetConflictGraph[MClass]) */
 void nitc___nitc__SeparateCompiler___class_conflict_graph_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph].val = p0; /* _class_conflict_graph on <self:SeparateCompiler> */
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#do_property_coloring for (self: SeparateCompiler) */
+/* method separate_compiler$SeparateCompiler$do_property_coloring for (self: SeparateCompiler) */
 void nitc___nitc__SeparateCompiler___do_property_coloring(val* self) {
 val* var /* : nullable RapidTypeAnalysis */;
 val* var2 /* : nullable RapidTypeAnalysis */;
@@ -4424,7 +5257,7 @@ val* var252 /* : Map[MClass, Array[nullable MProperty]] */;
 val* var254 /* : Map[MClass, Array[nullable MProperty]] */;
 val* var255 /* : Array[nullable Object] */;
 {
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
 var2 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
 var = var2;
 RET_LABEL1:(void)0;
@@ -4432,11 +5265,14 @@ RET_LABEL1:(void)0;
 }
 var_rta = var;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var5 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var5 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var3 = var5;
@@ -4451,24 +5287,24 @@ var_mclasses = var6;
 var7 = nitc__coloring___poset__POSet___to_conflict_graph(var_mclasses);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#class_conflict_graph= (self,var7) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$class_conflict_graph= (self,var7) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph].val = var7; /* _class_conflict_graph on <self:SeparateCompiler> */
 RET_LABEL8:(void)0;
 }
 }
 var9 = NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Set__nitc__PropertyLayoutElement);
 {
-core___core__HashMap___core__kernel__Object__init(var9); /* Direct call hash_collection#HashMap#init on <var9:HashMap[MClass, Set[PropertyLayoutElement]]>*/
+core___core__HashMap___core__kernel__Object__init(var9); /* Direct call hash_collection$HashMap$init on <var9:HashMap[MClass, Set[PropertyLayoutElement]]>*/
 }
 var_mmethods = var9;
 var10 = NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Set__nitc__MAttribute);
 {
-core___core__HashMap___core__kernel__Object__init(var10); /* Direct call hash_collection#HashMap#init on <var10:HashMap[MClass, Set[MAttribute]]>*/
+core___core__HashMap___core__kernel__Object__init(var10); /* Direct call hash_collection$HashMap$init on <var10:HashMap[MClass, Set[MAttribute]]>*/
 }
 var_mattributes = var10;
 var11 = NEW_core__Array(&type_core__Array__nitc__PropertyLayoutElement);
 {
-core___core__Array___core__kernel__Object__init(var11); /* Direct call array#Array#init on <var11:Array[PropertyLayoutElement]>*/
+core___core__Array___core__kernel__Object__init(var11); /* Direct call array$Array$init on <var11:Array[PropertyLayoutElement]>*/
 }
 var_dead_methods = var11;
 var_ = var_mclasses;
@@ -4490,17 +5326,17 @@ var15 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var
 var_mclass = var15;
 var16 = NEW_core__HashSet(&type_core__HashSet__nitc__PropertyLayoutElement);
 {
-core___core__HashSet___core__kernel__Object__init(var16); /* Direct call hash_collection#HashSet#init on <var16:HashSet[PropertyLayoutElement]>*/
+core___core__HashSet___core__kernel__Object__init(var16); /* Direct call hash_collection$HashSet$init on <var16:HashSet[PropertyLayoutElement]>*/
 }
 {
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_mmethods, var_mclass, var16); /* Direct call hash_collection#HashMap#[]= on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_mmethods, var_mclass, var16); /* Direct call hash_collection$HashMap$[]= on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/
 }
 var17 = NEW_core__HashSet(&type_core__HashSet__nitc__MAttribute);
 {
-core___core__HashSet___core__kernel__Object__init(var17); /* Direct call hash_collection#HashSet#init on <var17:HashSet[MAttribute]>*/
+core___core__HashSet___core__kernel__Object__init(var17); /* Direct call hash_collection$HashSet$init on <var17:HashSet[MAttribute]>*/
 }
 {
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_mattributes, var_mclass, var17); /* Direct call hash_collection#HashMap#[]= on <var_mattributes:HashMap[MClass, Set[MAttribute]]>*/
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_mattributes, var_mclass, var17); /* Direct call hash_collection$HashMap$[]= on <var_mattributes:HashMap[MClass, Set[MAttribute]]>*/
 }
 {
 ((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_13); /* next on <var_13:Iterator[MClass]>*/
@@ -4516,7 +5352,7 @@ var18 = 0; /* is null */
 var18 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
+{ /* Inline kernel$Object$!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
 var_other = ((val*)NULL);
 {
 var21 = ((short int(*)(val* self, val* p0))(var_rta->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rta, var_other); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
@@ -4530,9 +5366,12 @@ var18 = var19;
 }
 if (var18){
 {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_methods (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var25 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methods].val; /* _live_methods on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 if (unlikely(var25 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 82);
 fatal_exit(1);
@@ -4559,11 +5398,14 @@ var31 = ((val*(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var
 }
 var_m = var31;
 {
-{ /* Inline model#MProperty#intro_mclassdef (var_m) on <var_m:MMethod> */
+{ /* Inline model$MProperty$intro_mclassdef (var_m) on <var_m:MMethod> */
 var34 = var_m->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_m:MMethod> */
 if (unlikely(var34 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
 fatal_exit(1);
 }
 var32 = var34;
@@ -4571,11 +5413,14 @@ RET_LABEL33:(void)0;
 }
 }
 {
-{ /* Inline model#MClassDef#mclass (var32) on <var32:MClassDef> */
+{ /* Inline model$MClassDef$mclass (var32) on <var32:MClassDef> */
 var37 = var32->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var32:MClassDef> */
 if (unlikely(var37 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
 fatal_exit(1);
 }
 var35 = var37;
@@ -4597,9 +5442,12 @@ BREAK_label30: (void)0;
 ((void(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_28); /* finish on <var_28:Iterator[MMethod]>*/
 }
 {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_super_sends (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var41 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 if (unlikely(var41 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 118);
 fatal_exit(1);
@@ -4626,11 +5474,14 @@ var47 = ((val*(*)(val* self))((((long)var_44&3)?class_info[((long)var_44&3)]:var
 }
 var_m48 = var47;
 {
-{ /* Inline model#MPropDef#mclassdef (var_m48) on <var_m48:MMethodDef> */
+{ /* Inline model$MPropDef$mclassdef (var_m48) on <var_m48:MMethodDef> */
 var51 = var_m48->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_m48:MMethodDef> */
 if (unlikely(var51 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
 fatal_exit(1);
 }
 var49 = var51;
@@ -4638,11 +5489,14 @@ RET_LABEL50:(void)0;
 }
 }
 {
-{ /* Inline model#MClassDef#mclass (var49) on <var49:MClassDef> */
+{ /* Inline model$MClassDef$mclass (var49) on <var49:MClassDef> */
 var54 = var49->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var49:MClassDef> */
 if (unlikely(var54 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
 fatal_exit(1);
 }
 var52 = var54;
@@ -4667,11 +5521,14 @@ BREAK_label46: (void)0;
 } else {
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var59 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var59 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var57 = var59;
@@ -4679,11 +5536,14 @@ RET_LABEL58:(void)0;
 }
 }
 {
-{ /* Inline mmodule#MModule#in_importation (var57) on <var57:MModule> */
+{ /* Inline mmodule$MModule$in_importation (var57) on <var57:MModule> */
 var62 = var57->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var57:MModule> */
 if (unlikely(var62 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
 fatal_exit(1);
 }
 var60 = var62;
@@ -4711,11 +5571,14 @@ var69 = ((val*(*)(val* self))((((long)var_66&3)?class_info[((long)var_66&3)]:var
 }
 var_m70 = var69;
 {
-{ /* Inline model#MModule#mclassdefs (var_m70) on <var_m70:MModule> */
+{ /* Inline model$MModule$mclassdefs (var_m70) on <var_m70:MModule> */
 var73 = var_m70->attrs[COLOR_nitc__model__MModule___mclassdefs].val; /* _mclassdefs on <var_m70:MModule> */
 if (unlikely(var73 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 141);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 150);
 fatal_exit(1);
 }
 var71 = var73;
@@ -4740,11 +5603,14 @@ var79 = ((val*(*)(val* self))((((long)var_76&3)?class_info[((long)var_76&3)]:var
 }
 var_cd = var79;
 {
-{ /* Inline model#MClassDef#mclass (var_cd) on <var_cd:MClassDef> */
+{ /* Inline model$MClassDef$mclass (var_cd) on <var_cd:MClassDef> */
 var82 = var_cd->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_cd:MClassDef> */
 if (unlikely(var82 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
 fatal_exit(1);
 }
 var80 = var82;
@@ -4753,11 +5619,14 @@ RET_LABEL81:(void)0;
 }
 var_mclass83 = var80;
 {
-{ /* Inline model#MClassDef#intro_mproperties (var_cd) on <var_cd:MClassDef> */
+{ /* Inline model$MClassDef$intro_mproperties (var_cd) on <var_cd:MClassDef> */
 var86 = var_cd->attrs[COLOR_nitc__model__MClassDef___intro_mproperties].val; /* _intro_mproperties on <var_cd:MClassDef> */
 if (unlikely(var86 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 704);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 720);
 fatal_exit(1);
 }
 var84 = var86;
@@ -4796,10 +5665,10 @@ var94 = 1; /* is null */
 var94 = 0; /* arg is null but recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
+{ /* Inline kernel$Object$== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
 var_other97 = ((val*)NULL);
 {
-{ /* Inline kernel#Object#is_same_instance (var_rta,var_other97) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline kernel$Object$is_same_instance (var_rta,var_other97) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var100 = var_rta == var_other97;
 var98 = var100;
 goto RET_LABEL99;
@@ -4821,9 +5690,12 @@ var101 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var
 }
 } else {
 {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_methods (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var104 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methods].val; /* _live_methods on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 if (unlikely(var104 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 82);
 fatal_exit(1);
@@ -4838,7 +5710,7 @@ var105 = core___core__HashSet___core__abstract_collection__Collection__has(var10
 var106 = !var105;
 if (var106){
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_dead_methods, var_p); /* Direct call array#Array#add on <var_dead_methods:Array[PropertyLayoutElement]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var_dead_methods, var_p); /* Direct call array$Array$add on <var_dead_methods:Array[PropertyLayoutElement]>*/
 }
 } else {
 }
@@ -4871,11 +5743,14 @@ BREAK_label91: (void)0;
 ((void(*)(val* self))((((long)var_89&3)?class_info[((long)var_89&3)]:var_89->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_89); /* finish on <var_89:IndexedIterator[MProperty]>*/
 }
 {
-{ /* Inline model#MClassDef#mpropdefs (var_cd) on <var_cd:MClassDef> */
+{ /* Inline model$MClassDef$mpropdefs (var_cd) on <var_cd:MClassDef> */
 var113 = var_cd->attrs[COLOR_nitc__model__MClassDef___mpropdefs].val; /* _mpropdefs on <var_cd:MClassDef> */
 if (unlikely(var113 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 707);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 723);
 fatal_exit(1);
 }
 var111 = var113;
@@ -4913,7 +5788,7 @@ goto BREAK_label124;
 } else {
 }
 {
-{ /* Inline modelize_property#MPropDef#has_supercall (var_mpropdef) on <var_mpropdef:MPropDef(MMethodDef)> */
+{ /* Inline modelize_property$MPropDef$has_supercall (var_mpropdef) on <var_mpropdef:MPropDef(MMethodDef)> */
 var127 = var_mpropdef->attrs[COLOR_nitc__modelize_property__MPropDef___has_supercall].s; /* _has_supercall on <var_mpropdef:MPropDef(MMethodDef)> */
 var125 = var127;
 RET_LABEL126:(void)0;
@@ -4926,10 +5801,10 @@ var128 = 1; /* is null */
 var128 = 0; /* arg is null but recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
+{ /* Inline kernel$Object$== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
 var_other97 = ((val*)NULL);
 {
-{ /* Inline kernel#Object#is_same_instance (var_rta,var_other97) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline kernel$Object$is_same_instance (var_rta,var_other97) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var133 = var_rta == var_other97;
 var131 = var133;
 goto RET_LABEL132;
@@ -4951,9 +5826,12 @@ var134 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var
 }
 } else {
 {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_super_sends (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var137 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 if (unlikely(var137 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 118);
 fatal_exit(1);
@@ -4968,7 +5846,7 @@ var138 = core___core__HashSet___core__abstract_collection__Collection__has(var13
 var139 = !var138;
 if (var139){
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_dead_methods, var_mpropdef); /* Direct call array#Array#add on <var_dead_methods:Array[PropertyLayoutElement]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var_dead_methods, var_mpropdef); /* Direct call array$Array$add on <var_dead_methods:Array[PropertyLayoutElement]>*/
 }
 } else {
 }
@@ -5002,9 +5880,12 @@ BREAK_label68: (void)0;
 }
 var140 = NEW_nitc__POSetGroupColorer(&type_nitc__POSetGroupColorer__nitc__MClass__nitc__PropertyLayoutElement);
 {
-{ /* Inline separate_compiler#SeparateCompiler#class_conflict_graph (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$class_conflict_graph (self) on <self:SeparateCompiler> */
 var143 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph].val; /* _class_conflict_graph on <self:SeparateCompiler> */
 if (unlikely(var143 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 310);
 fatal_exit(1);
@@ -5028,7 +5909,7 @@ var144 = nitc___nitc__POSetGroupColorer___colors(var_meth_colorer);
 }
 var_method_colors = var144;
 {
-nitc___nitc__SeparateCompiler___compile_color_consts(self, var_method_colors); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_color_consts(self, var_method_colors); /* Direct call separate_compiler$SeparateCompiler$compile_color_consts on <self:SeparateCompiler>*/
 }
 var_145 = var_dead_methods;
 {
@@ -5051,7 +5932,7 @@ var_mproperty = var150;
 var151 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor]))(self); /* new_visitor on <self:SeparateCompiler>*/
 }
 {
-{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */
+{ /* Inline kernel$Int$unary - (1l) on <1l:Int> */
 var154 = -1l;
 var152 = var154;
 goto RET_LABEL153;
@@ -5059,7 +5940,7 @@ RET_LABEL153:(void)0;
 }
 }
 {
-nitc___nitc__SeparateCompiler___compile_color_const(self, var151, var_mproperty, var152); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_color_const(self, var151, var_mproperty, var152); /* Direct call separate_compiler$SeparateCompiler$compile_color_const on <self:SeparateCompiler>*/
 }
 {
 ((void(*)(val* self))((((long)var_147&3)?class_info[((long)var_147&3)]:var_147->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_147); /* next on <var_147:IndexedIterator[PropertyLayoutElement]>*/
@@ -5071,9 +5952,12 @@ BREAK_label149: (void)0;
 }
 var155 = NEW_nitc__POSetGroupColorer(&type_nitc__POSetGroupColorer__nitc__MClass__nitc__MAttribute);
 {
-{ /* Inline separate_compiler#SeparateCompiler#class_conflict_graph (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$class_conflict_graph (self) on <self:SeparateCompiler> */
 var158 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph].val; /* _class_conflict_graph on <self:SeparateCompiler> */
 if (unlikely(var158 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 310);
 fatal_exit(1);
@@ -5097,24 +5981,24 @@ var159 = nitc___nitc__POSetGroupColorer___colors(var_attr_colorer);
 }
 var_attr_colors = var159;
 {
-nitc___nitc__SeparateCompiler___compile_color_consts(self, var_attr_colors); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_color_consts(self, var_attr_colors); /* Direct call separate_compiler$SeparateCompiler$compile_color_consts on <self:SeparateCompiler>*/
 }
 var160 = NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Array__nullable__nitc__MPropDef);
 {
-core___core__HashMap___core__kernel__Object__init(var160); /* Direct call hash_collection#HashMap#init on <var160:HashMap[MClass, Array[nullable MPropDef]]>*/
+core___core__HashMap___core__kernel__Object__init(var160); /* Direct call hash_collection$HashMap$init on <var160:HashMap[MClass, Array[nullable MPropDef]]>*/
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#method_tables= (self,var160) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$method_tables= (self,var160) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables].val = var160; /* _method_tables on <self:SeparateCompiler> */
 RET_LABEL161:(void)0;
 }
 }
 var162 = NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Array__nullable__nitc__MProperty);
 {
-core___core__HashMap___core__kernel__Object__init(var162); /* Direct call hash_collection#HashMap#init on <var162:HashMap[MClass, Array[nullable MProperty]]>*/
+core___core__HashMap___core__kernel__Object__init(var162); /* Direct call hash_collection$HashMap$init on <var162:HashMap[MClass, Array[nullable MProperty]]>*/
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#attr_tables= (self,var162) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$attr_tables= (self,var162) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables].val = var162; /* _attr_tables on <self:SeparateCompiler> */
 RET_LABEL163:(void)0;
 }
@@ -5137,7 +6021,7 @@ var169 = ((val*(*)(val* self))((((long)var_166&3)?class_info[((long)var_166&3)]:
 }
 var_mclass170 = var169;
 {
-{ /* Inline model#MClass#has_new_factory (var_mclass170) on <var_mclass170:MClass> */
+{ /* Inline model$MClass$has_new_factory (var_mclass170) on <var_mclass170:MClass> */
 var174 = var_mclass170->attrs[COLOR_nitc__model__MClass___has_new_factory].s; /* _has_new_factory on <var_mclass170:MClass> */
 var172 = var174;
 RET_LABEL173:(void)0;
@@ -5147,11 +6031,14 @@ var175 = !var172;
 var_176 = var175;
 if (var175){
 {
-{ /* Inline model#MClass#kind (var_mclass170) on <var_mclass170:MClass> */
+{ /* Inline model$MClass$kind (var_mclass170) on <var_mclass170:MClass> */
 var180 = var_mclass170->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var_mclass170:MClass> */
 if (unlikely(var180 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 459);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
 fatal_exit(1);
 }
 var178 = var180;
@@ -5163,10 +6050,10 @@ var181 = glob_sys;
 var182 = nitc__model___core__Sys___abstract_kind(var181);
 }
 {
-{ /* Inline kernel#Object#== (var178,var182) on <var178:MClassKind> */
+{ /* Inline kernel$Object$== (var178,var182) on <var178:MClassKind> */
 var_other97 = var182;
 {
-{ /* Inline kernel#Object#is_same_instance (var178,var_other97) on <var178:MClassKind> */
+{ /* Inline kernel$Object$is_same_instance (var178,var_other97) on <var178:MClassKind> */
 var187 = var178 == var_other97;
 var185 = var187;
 goto RET_LABEL186;
@@ -5183,11 +6070,14 @@ if (var183){
 var177 = var_188;
 } else {
 {
-{ /* Inline model#MClass#kind (var_mclass170) on <var_mclass170:MClass> */
+{ /* Inline model$MClass$kind (var_mclass170) on <var_mclass170:MClass> */
 var191 = var_mclass170->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var_mclass170:MClass> */
 if (unlikely(var191 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 459);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
 fatal_exit(1);
 }
 var189 = var191;
@@ -5199,10 +6089,10 @@ var192 = glob_sys;
 var193 = nitc__model___core__Sys___interface_kind(var192);
 }
 {
-{ /* Inline kernel#Object#== (var189,var193) on <var189:MClassKind> */
+{ /* Inline kernel$Object$== (var189,var193) on <var189:MClassKind> */
 var_other97 = var193;
 {
-{ /* Inline kernel#Object#is_same_instance (var189,var_other97) on <var189:MClassKind> */
+{ /* Inline kernel$Object$is_same_instance (var189,var_other97) on <var189:MClassKind> */
 var198 = var189 == var_other97;
 var196 = var198;
 goto RET_LABEL197;
@@ -5230,7 +6120,7 @@ var201 = 0; /* is null */
 var201 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
+{ /* Inline kernel$Object$!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
 var_other = ((val*)NULL);
 {
 var204 = ((short int(*)(val* self, val* p0))(var_rta->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rta, var_other); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
@@ -5245,9 +6135,12 @@ var201 = var202;
 var_206 = var201;
 if (var201){
 {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var209 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 if (unlikely(var209 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 69);
 fatal_exit(1);
@@ -5269,11 +6162,14 @@ goto BREAK_label199;
 } else {
 }
 {
-{ /* Inline model#MClass#intro (var_mclass170) on <var_mclass170:MClass> */
+{ /* Inline model$MClass$intro (var_mclass170) on <var_mclass170:MClass> */
 var214 = var_mclass170->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on <var_mclass170:MClass> */
 if (unlikely(var214 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 483);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 496);
 fatal_exit(1);
 }
 var212 = var214;
@@ -5281,11 +6177,14 @@ RET_LABEL213:(void)0;
 }
 }
 {
-{ /* Inline model#MClassDef#bound_mtype (var212) on <var212:MClassDef> */
+{ /* Inline model$MClassDef$bound_mtype (var212) on <var212:MClassDef> */
 var217 = var212->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var212:MClassDef> */
 if (unlikely(var217 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
 fatal_exit(1);
 }
 var215 = var217;
@@ -5299,22 +6198,25 @@ var218 = nitc___nitc__POSetGroupColorer___build_layout(var_meth_colorer, var_mcl
 var_meth_layout = var218;
 var219 = NEW_core__Array(&type_core__Array__nullable__nitc__MPropDef);
 {
-{ /* Inline array#AbstractArrayRead#length (var_meth_layout) on <var_meth_layout:Array[nullable PropertyLayoutElement]> */
+{ /* Inline array$AbstractArrayRead$length (var_meth_layout) on <var_meth_layout:Array[nullable PropertyLayoutElement]> */
 var222 = var_meth_layout->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_meth_layout:Array[nullable PropertyLayoutElement]> */
 var220 = var222;
 RET_LABEL221:(void)0;
 }
 }
 {
-core___core__Array___with_capacity(var219, var220); /* Direct call array#Array#with_capacity on <var219:Array[nullable MPropDef]>*/
+core___core__Array___with_capacity(var219, var220); /* Direct call array$Array$with_capacity on <var219:Array[nullable MPropDef]>*/
 }
 var_meth_table = var219;
 {
-{ /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$method_tables (self) on <self:SeparateCompiler> */
 var225 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables].val; /* _method_tables on <self:SeparateCompiler> */
 if (unlikely(var225 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1067);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1073);
 fatal_exit(1);
 }
 var223 = var225;
@@ -5347,11 +6249,11 @@ var232 = 1; /* is null */
 var232 = 0; /* arg is null but recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#== (var_e,((val*)NULL)) on <var_e:nullable PropertyLayoutElement> */
+{ /* Inline kernel$Object$== (var_e,((val*)NULL)) on <var_e:nullable PropertyLayoutElement> */
 var_other97 = ((val*)NULL);
 {
-{ /* Inline kernel#Object#is_same_instance (var_e,var_other97) on <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> */
-var237 = var_e == var_other97 || (var_other97 != NULL && (!((long)var_e&3)) && (!((long)var_other97&3)) && var_e->class == var_other97->class && ((var_e->class->box_kind == 3 && ((struct instance_core__Byte*)var_e)->value == ((struct instance_core__Byte*)var_other97)->value) || (var_e->class->box_kind == 5 && ((struct instance_core__Float*)var_e)->value == ((struct instance_core__Float*)var_other97)->value) || (var_e->class->box_kind == 6 && ((struct instance_core__NativeString*)var_e)->value == ((struct instance_core__NativeString*)var_other97)->value) || (var_e->class->box_kind == 7 && ((struct instance_core__Pointer*)var_e)->value == ((struct instance_core__Pointer*)var_other97)->value) || (var_e->class->box_kind == 8 && ((struct instance_core__Int8*)var_e)->value == ((struct instance_core__Int8*)var_other97)->value) || (var_e->class->box_kind == 9 && ((struct instance_core__Int16*)var_e)->value == ((struct instance_core__Int16*)var_other97)->value) || (var_e->class->box_kind == 10 && ((struct instance_core__UInt16*)var_e)->value == ((struct instance_core__UInt16*)var_other97)->value) || (var_e->class->box_kind == 11 && ((struct instance_core__Int32*)var_e)->value == ((struct instance_core__Int32*)var_other97)->value) || (var_e->class->box_kind == 12 && ((struct instance_core__UInt32*)var_e)->value == ((struct instance_core__UInt32*)var_other97)->value)));
+{ /* Inline kernel$Object$is_same_instance (var_e,var_other97) on <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> */
+var237 = var_e == var_other97 || (var_other97 != NULL && (!((long)var_e&3)) && (!((long)var_other97&3)) && var_e->class == var_other97->class && ((var_e->class->box_kind == 3 && ((struct instance_core__Byte*)var_e)->value == ((struct instance_core__Byte*)var_other97)->value) || (var_e->class->box_kind == 5 && ((struct instance_core__Float*)var_e)->value == ((struct instance_core__Float*)var_other97)->value) || (var_e->class->box_kind == 6 && ((struct instance_core__CString*)var_e)->value == ((struct instance_core__CString*)var_other97)->value) || (var_e->class->box_kind == 7 && ((struct instance_core__Pointer*)var_e)->value == ((struct instance_core__Pointer*)var_other97)->value) || (var_e->class->box_kind == 8 && ((struct instance_core__Int8*)var_e)->value == ((struct instance_core__Int8*)var_other97)->value) || (var_e->class->box_kind == 9 && ((struct instance_core__Int16*)var_e)->value == ((struct instance_core__Int16*)var_other97)->value) || (var_e->class->box_kind == 10 && ((struct instance_core__UInt16*)var_e)->value == ((struct instance_core__UInt16*)var_other97)->value) || (var_e->class->box_kind == 11 && ((struct instance_core__Int32*)var_e)->value == ((struct instance_core__Int32*)var_other97)->value) || (var_e->class->box_kind == 12 && ((struct instance_core__UInt32*)var_e)->value == ((struct instance_core__UInt32*)var_other97)->value)));
 var235 = var237;
 goto RET_LABEL236;
 RET_LABEL236:(void)0;
@@ -5365,7 +6267,7 @@ var232 = var233;
 }
 if (var232){
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_meth_table, ((val*)NULL)); /* Direct call array#Array#add on <var_meth_table:Array[nullable MPropDef]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var_meth_table, ((val*)NULL)); /* Direct call array$Array$add on <var_meth_table:Array[nullable MPropDef]>*/
 }
 } else {
 /* <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> isa MMethod */
@@ -5378,11 +6280,14 @@ var238 = (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->type_table[cl
 }
 if (var238){
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var243 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var243 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var241 = var243;
@@ -5393,7 +6298,7 @@ RET_LABEL242:(void)0;
 var244 = nitc___nitc__MProperty___lookup_first_definition(var_e, var241, var_mtype);
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_meth_table, var244); /* Direct call array#Array#add on <var_meth_table:Array[nullable MPropDef]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var_meth_table, var244); /* Direct call array$Array$add on <var_meth_table:Array[nullable MPropDef]>*/
 }
 } else {
 /* <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> isa MMethodDef */
@@ -5406,11 +6311,14 @@ var245 = (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->type_table[cl
 }
 if (var245){
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var250 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var250 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var248 = var250;
@@ -5421,9 +6329,12 @@ RET_LABEL249:(void)0;
 var251 = nitc___nitc__MPropDef___lookup_next_definition(var_e, var248, var_mtype);
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_meth_table, var251); /* Direct call array#Array#add on <var_meth_table:Array[nullable MPropDef]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var_meth_table, var251); /* Direct call array$Array$add on <var_meth_table:Array[nullable MPropDef]>*/
 }
 } else {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Aborted");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 409);
 fatal_exit(1);
@@ -5439,11 +6350,14 @@ BREAK_label230: (void)0;
 ((void(*)(val* self))((((long)var_228&3)?class_info[((long)var_228&3)]:var_228->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_228); /* finish on <var_228:IndexedIterator[nullable PropertyLayoutElement]>*/
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$attr_tables (self) on <self:SeparateCompiler> */
 var254 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables].val; /* _attr_tables on <self:SeparateCompiler> */
 if (unlikely(var254 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1068);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1074);
 fatal_exit(1);
 }
 var252 = var254;
@@ -5467,7 +6381,7 @@ BREAK_label168: (void)0;
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#do_type_coloring for (self: SeparateCompiler): Collection[MType] */
+/* method separate_compiler$SeparateCompiler$do_type_coloring for (self: SeparateCompiler): Collection[MType] */
 val* nitc___nitc__SeparateCompiler___do_type_coloring(val* self) {
 val* var /* : Collection[MType] */;
 val* var1 /* : nullable RapidTypeAnalysis */;
@@ -5518,25 +6432,34 @@ const char* var_class_name;
 long var52 /* : Int */;
 val* var53 /* : nullable Object */;
 {
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
 var3 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
 var1 = var3;
 RET_LABEL2:(void)0;
 }
 }
 if (var1 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 423);
 fatal_exit(1);
 } else {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on <var1:nullable RapidTypeAnalysis> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_types (var1) on <var1:nullable RapidTypeAnalysis> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
 fatal_exit(1);
 }
 var6 = var1->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <var1:nullable RapidTypeAnalysis> */
 if (unlikely(var6 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
 fatal_exit(1);
@@ -5547,25 +6470,34 @@ RET_LABEL5:(void)0;
 }
 var_live_types = var4;
 {
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
 var9 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
 var7 = var9;
 RET_LABEL8:(void)0;
 }
 }
 if (var7 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 424);
 fatal_exit(1);
 } else {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var7) on <var7:nullable RapidTypeAnalysis> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_cast_types (var7) on <var7:nullable RapidTypeAnalysis> */
 if (unlikely(var7 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 72);
 fatal_exit(1);
 }
 var12 = var7->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on <var7:nullable RapidTypeAnalysis> */
 if (unlikely(var12 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 72);
 fatal_exit(1);
@@ -5577,21 +6509,24 @@ RET_LABEL11:(void)0;
 var_live_cast_types = var10;
 var13 = NEW_core__HashSet(&type_core__HashSet__nitc__MType);
 {
-core___core__HashSet___core__kernel__Object__init(var13); /* Direct call hash_collection#HashSet#init on <var13:HashSet[MType]>*/
+core___core__HashSet___core__kernel__Object__init(var13); /* Direct call hash_collection$HashSet$init on <var13:HashSet[MType]>*/
 }
 var_res = var13;
 {
-core___core__SimpleCollection___add_all(var_res, var_live_types); /* Direct call abstract_collection#SimpleCollection#add_all on <var_res:HashSet[MType]>*/
+core___core__SimpleCollection___add_all(var_res, var_live_types); /* Direct call abstract_collection$SimpleCollection$add_all on <var_res:HashSet[MType]>*/
 }
 {
-core___core__SimpleCollection___add_all(var_res, var_live_cast_types); /* Direct call abstract_collection#SimpleCollection#add_all on <var_res:HashSet[MType]>*/
+core___core__SimpleCollection___add_all(var_res, var_live_cast_types); /* Direct call abstract_collection$SimpleCollection$add_all on <var_res:HashSet[MType]>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
 var16 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
 if (unlikely(var16 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
 var14 = var16;
@@ -5599,9 +6534,12 @@ RET_LABEL15:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var14) on <var14:ModelBuilder> */
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var14) on <var14:ModelBuilder> */
 var19 = var14->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var14:ModelBuilder> */
 if (unlikely(var19 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
@@ -5611,9 +6549,12 @@ RET_LABEL18:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_type_poset (var17) on <var17:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_type_poset (var17) on <var17:ToolContext> */
 var22 = var17->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_type_poset].val; /* _opt_type_poset on <var17:ToolContext> */
 if (unlikely(var22 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_type_poset");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 62);
 fatal_exit(1);
@@ -5623,7 +6564,7 @@ RET_LABEL21:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var20) on <var20:OptionBool> */
+{ /* Inline opts$Option$value (var20) on <var20:OptionBool> */
 var25 = var20->attrs[COLOR_opts__Option___value].val; /* _value on <var20:OptionBool> */
 var23 = var25;
 RET_LABEL24:(void)0;
@@ -5637,19 +6578,19 @@ var27 = nitc___nitc__SeparateCompiler___poset_from_mtypes(self, var_live_types,
 var_poset = var27;
 var28 = NEW_nitc__POSetColorer(&type_nitc__POSetColorer__nitc__MType);
 {
-{ /* Inline kernel#Object#init (var28) on <var28:POSetColorer[MType]> */
+{ /* Inline kernel$Object$init (var28) on <var28:POSetColorer[MType]> */
 RET_LABEL29:(void)0;
 }
 }
 var_colorer = var28;
 {
-nitc___nitc__POSetColorer___colorize(var_colorer, var_poset); /* Direct call coloring#POSetColorer#colorize on <var_colorer:POSetColorer[MType]>*/
+nitc___nitc__POSetColorer___colorize(var_colorer, var_poset); /* Direct call coloring$POSetColorer$colorize on <var_colorer:POSetColorer[MType]>*/
 }
 {
 var30 = nitc___nitc__POSetColorer___ids(var_colorer);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#type_ids= (self,var30) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$type_ids= (self,var30) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val = var30; /* _type_ids on <self:SeparateCompiler> */
 RET_LABEL31:(void)0;
 }
@@ -5658,7 +6599,7 @@ RET_LABEL31:(void)0;
 var32 = nitc___nitc__POSetColorer___colors(var_colorer);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#type_colors= (self,var32) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$type_colors= (self,var32) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors].val = var32; /* _type_colors on <self:SeparateCompiler> */
 RET_LABEL33:(void)0;
 }
@@ -5667,21 +6608,21 @@ RET_LABEL33:(void)0;
 var34 = nitc___nitc__SeparateCompiler___build_type_tables(self, var_poset);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#type_tables= (self,var34) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$type_tables= (self,var34) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables].val = var34; /* _type_tables on <self:SeparateCompiler> */
 RET_LABEL35:(void)0;
 }
 }
 } else {
 {
-nitc___nitc__SeparateCompiler___compute_type_test_layouts(self, var_live_types, var_live_cast_types); /* Direct call separate_compiler#SeparateCompiler#compute_type_test_layouts on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compute_type_test_layouts(self, var_live_types, var_live_cast_types); /* Direct call separate_compiler$SeparateCompiler$compute_type_test_layouts on <self:SeparateCompiler>*/
 }
 var36 = NEW_core__HashMap(&type_core__HashMap__nitc__MType__core__Int);
 {
-core___core__HashMap___core__kernel__Object__init(var36); /* Direct call hash_collection#HashMap#init on <var36:HashMap[MType, Int]>*/
+core___core__HashMap___core__kernel__Object__init(var36); /* Direct call hash_collection$HashMap$init on <var36:HashMap[MType, Int]>*/
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#type_ids= (self,var36) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$type_ids= (self,var36) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val = var36; /* _type_ids on <self:SeparateCompiler> */
 RET_LABEL37:(void)0;
 }
@@ -5704,9 +6645,12 @@ var41 = ((val*(*)(val* self))((((long)var_39&3)?class_info[((long)var_39&3)]:var
 }
 var_x = var41;
 {
-{ /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$type_ids (self) on <self:SeparateCompiler> */
 var44 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on <self:SeparateCompiler> */
 if (unlikely(var44 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 149);
 fatal_exit(1);
@@ -5716,9 +6660,12 @@ RET_LABEL43:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$type_ids (self) on <self:SeparateCompiler> */
 var47 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on <self:SeparateCompiler> */
 if (unlikely(var47 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 149);
 fatal_exit(1);
@@ -5731,14 +6678,14 @@ RET_LABEL46:(void)0;
 var48 = ((long(*)(val* self))((((long)var45&3)?class_info[((long)var45&3)]:var45->class)->vft[COLOR_core__abstract_collection__MapRead__length]))(var45); /* length on <var45:Map[MType, Int]>*/
 }
 {
-{ /* Inline kernel#Int#+ (var48,1l) on <var48:Int> */
+{ /* Inline kernel$Int$+ (var48,1l) on <var48:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var51 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var51)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var52 = var48 + 1l;
@@ -5761,14 +6708,14 @@ BREAK_label: (void)0;
 }
 }
 {
-nitc___nitc__SeparateCompiler___compute_resolution_tables(self, var_live_types); /* Direct call separate_compiler#SeparateCompiler#compute_resolution_tables on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compute_resolution_tables(self, var_live_types); /* Direct call separate_compiler$SeparateCompiler$compute_resolution_tables on <self:SeparateCompiler>*/
 }
 var = var_res;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#poset_from_mtypes for (self: SeparateCompiler, Set[MType], Set[MType]): POSet[MType] */
+/* method separate_compiler$SeparateCompiler$poset_from_mtypes for (self: SeparateCompiler, Set[MType], Set[MType]): POSet[MType] */
 val* nitc___nitc__SeparateCompiler___poset_from_mtypes(val* self, val* p0, val* p1) {
 val* var /* : POSet[MType] */;
 val* var_mtypes /* var mtypes: Set[MType] */;
@@ -5854,14 +6801,14 @@ var_mtypes = p0;
 var_cast_types = p1;
 var1 = NEW_poset__POSet(&type_poset__POSet__nitc__MType);
 {
-{ /* Inline kernel#Object#init (var1) on <var1:POSet[MType]> */
+{ /* Inline kernel$Object$init (var1) on <var1:POSet[MType]> */
 RET_LABEL2:(void)0;
 }
 }
 var_poset = var1;
 var3 = NEW_more_collections__MultiHashMap(&type_more_collections__MultiHashMap__nitc__MClass__nitc__MType);
 {
-core___core__HashMap___core__kernel__Object__init(var3); /* Direct call hash_collection#HashMap#init on <var3:MultiHashMap[MClass, MType]>*/
+core___core__HashMap___core__kernel__Object__init(var3); /* Direct call hash_collection$HashMap$init on <var3:MultiHashMap[MClass, MType]>*/
 }
 var_mtypes_by_class = var3;
 var_ = var_mtypes;
@@ -5899,11 +6846,14 @@ PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 462);
 fatal_exit(1);
 }
 {
-{ /* Inline model#MClassType#mclass (var8) on <var8:MType(MClassType)> */
+{ /* Inline model$MClassType$mclass (var8) on <var8:MType(MClassType)> */
 var12 = var8->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var8:MType(MClassType)> */
 if (unlikely(var12 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
 fatal_exit(1);
 }
 var10 = var12;
@@ -5915,7 +6865,7 @@ var_c = var10;
 var13 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_mtypes_by_class, var_c);
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var13, var_e); /* Direct call array#Array#add on <var13:nullable Object(Array[MType])>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var13, var_e); /* Direct call array$Array$add on <var13:nullable Object(Array[MType])>*/
 }
 {
 var14 = poset___poset__POSet___add_node(var_poset, var_e);
@@ -5930,7 +6880,7 @@ BREAK_label: (void)0;
 }
 var15 = NEW_more_collections__MultiHashMap(&type_more_collections__MultiHashMap__nitc__MClass__nitc__MType);
 {
-core___core__HashMap___core__kernel__Object__init(var15); /* Direct call hash_collection#HashMap#init on <var15:MultiHashMap[MClass, MType]>*/
+core___core__HashMap___core__kernel__Object__init(var15); /* Direct call hash_collection$HashMap$init on <var15:MultiHashMap[MClass, MType]>*/
 }
 var_casttypes_by_class = var15;
 var_16 = var_cast_types;
@@ -5968,11 +6918,14 @@ PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 469);
 fatal_exit(1);
 }
 {
-{ /* Inline model#MClassType#mclass (var23) on <var23:MType(MClassType)> */
+{ /* Inline model$MClassType$mclass (var23) on <var23:MType(MClassType)> */
 var30 = var23->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var23:MType(MClassType)> */
 if (unlikely(var30 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
 fatal_exit(1);
 }
 var28 = var30;
@@ -5984,7 +6937,7 @@ var_c31 = var28;
 var32 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_casttypes_by_class, var_c31);
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var32, var_e22); /* Direct call array#Array#add on <var32:nullable Object(Array[MType])>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var32, var_e22); /* Direct call array$Array$add on <var32:nullable Object(Array[MType])>*/
 }
 {
 var33 = poset___poset__POSet___add_node(var_poset, var_e22);
@@ -6019,11 +6972,14 @@ var40 = ((val*(*)(val* self))((((long)var_36&3)?class_info[((long)var_36&3)]:var
 }
 var_ts1 = var40;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var43 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var43 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var41 = var43;
@@ -6092,10 +7048,10 @@ var65 = ((val*(*)(val* self))((((long)var_62&3)?class_info[((long)var_62&3)]:var
 }
 var_o = var65;
 {
-{ /* Inline kernel#Object#== (var_e59,var_o) on <var_e59:MType> */
+{ /* Inline kernel$Object$== (var_e59,var_o) on <var_e59:MType> */
 var_other = var_o;
 {
-{ /* Inline kernel#Object#is_same_instance (var_e59,var_other) on <var_e59:MType> */
+{ /* Inline kernel$Object$is_same_instance (var_e59,var_other) on <var_e59:MType> */
 var70 = var_e59 == var_other;
 var68 = var70;
 goto RET_LABEL69;
@@ -6112,11 +7068,14 @@ goto BREAK_label71;
 } else {
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var74 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var74 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var72 = var74;
@@ -6128,7 +7087,7 @@ var75 = nitc___nitc__MType___is_subtype(var_e59, var72, ((val*)NULL), var_o);
 }
 if (var75){
 {
-poset___poset__POSet___add_edge(var_poset, var_e59, var_o); /* Direct call poset#POSet#add_edge on <var_poset:POSet[MType]>*/
+poset___poset__POSet___add_edge(var_poset, var_e59, var_o); /* Direct call poset$POSet$add_edge on <var_poset:POSet[MType]>*/
 }
 } else {
 }
@@ -6163,7 +7122,7 @@ BREAK_label50: (void)0;
 }
 BREAK_label38: (void)0;
 {
-{ /* Inline abstract_collection#MapIterator#finish (var_36) on <var_36:MapIterator[MClass, Array[MType]]> */
+{ /* Inline abstract_collection$MapIterator$finish (var_36) on <var_36:MapIterator[MClass, Array[MType]]> */
 RET_LABEL76:(void)0;
 }
 }
@@ -6172,7 +7131,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#build_type_tables for (self: SeparateCompiler, POSet[MType]): Map[MType, Array[nullable MType]] */
+/* method separate_compiler$SeparateCompiler$build_type_tables for (self: SeparateCompiler, POSet[MType]): Map[MType, Array[nullable MType]] */
 val* nitc___nitc__SeparateCompiler___build_type_tables(val* self, val* p0) {
 val* var /* : Map[MType, Array[nullable MType]] */;
 val* var_mtypes /* var mtypes: POSet[MType] */;
@@ -6221,7 +7180,7 @@ long var39 /* : Int */;
 var_mtypes = p0;
 var1 = NEW_core__HashMap(&type_core__HashMap__nitc__MType__core__Array__nullable__nitc__MType);
 {
-core___core__HashMap___core__kernel__Object__init(var1); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MType, Array[nullable MType]]>*/
+core___core__HashMap___core__kernel__Object__init(var1); /* Direct call hash_collection$HashMap$init on <var1:HashMap[MType, Array[nullable MType]]>*/
 }
 var_tables = var1;
 var_ = var_mtypes;
@@ -6243,7 +7202,7 @@ var5 = ((val*(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3-
 var_mtype = var5;
 var6 = NEW_core__Array(&type_core__Array__nullable__nitc__MType);
 {
-core___core__Array___core__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[nullable MType]>*/
+core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[nullable MType]>*/
 }
 var_table = var6;
 {
@@ -6270,9 +7229,12 @@ var14 = ((val*(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var
 }
 var_sup = var14;
 {
-{ /* Inline separate_compiler#SeparateCompiler#type_colors (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$type_colors (self) on <self:SeparateCompiler> */
 var17 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors].val; /* _type_colors on <self:SeparateCompiler> */
 if (unlikely(var17 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 150);
 fatal_exit(1);
@@ -6287,21 +7249,21 @@ var18 = ((val*(*)(val* self, val* p0))((((long)var15&3)?class_info[((long)var15&
 var19 = (long)(var18)>>2;
 var_color = var19;
 {
-{ /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
+{ /* Inline array$AbstractArrayRead$length (var_table) on <var_table:Array[nullable MType]> */
 var22 = var_table->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table:Array[nullable MType]> */
 var20 = var22;
 RET_LABEL21:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#<= (var20,var_color) on <var20:Int> */
+{ /* Inline kernel$Int$<= (var20,var_color) on <var20:Int> */
 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
 /* <var_color:Int> isa OTHER */
 var25 = 1; /* easy <var_color:Int> isa OTHER*/
 if (unlikely(!var25)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
 fatal_exit(1);
 }
 var26 = var20 <= var_color;
@@ -6312,7 +7274,7 @@ RET_LABEL24:(void)0;
 }
 if (var23){
 {
-{ /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
+{ /* Inline array$AbstractArrayRead$length (var_table) on <var_table:Array[nullable MType]> */
 var29 = var_table->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table:Array[nullable MType]> */
 var27 = var29;
 RET_LABEL28:(void)0;
@@ -6322,14 +7284,14 @@ var_i = var27;
 var_30 = var_color;
 for(;;) {
 {
-{ /* Inline kernel#Int#< (var_i,var_30) on <var_i:Int> */
+{ /* Inline kernel$Int$< (var_i,var_30) on <var_i:Int> */
 /* Covariant cast for argument 0 (i) <var_30:Int> isa OTHER */
 /* <var_30:Int> isa OTHER */
 var33 = 1; /* easy <var_30:Int> isa OTHER*/
 if (unlikely(!var33)) {
 var_class_name36 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var37 = var_i < var_30;
@@ -6343,7 +7305,7 @@ if (var31){
 goto BREAK_label38;
 }
 {
-core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table, var_i, ((val*)NULL)); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
+core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table, var_i, ((val*)NULL)); /* Direct call array$Array$[]= on <var_table:Array[nullable MType]>*/
 }
 {
 var39 = core___core__Int___Discrete__successor(var_i, 1l);
@@ -6354,7 +7316,7 @@ BREAK_label38: (void)0;
 } else {
 }
 {
-core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table, var_color, var_sup); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
+core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table, var_color, var_sup); /* Direct call array$Array$[]= on <var_table:Array[nullable MType]>*/
 }
 {
 ((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_11); /* next on <var_11:Iterator[MType]>*/
@@ -6365,7 +7327,7 @@ BREAK_label13: (void)0;
 ((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_11); /* finish on <var_11:Iterator[MType]>*/
 }
 {
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_tables, var_mtype, var_table); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MType, Array[nullable MType]]>*/
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_tables, var_mtype, var_table); /* Direct call hash_collection$HashMap$[]= on <var_tables:HashMap[MType, Array[nullable MType]]>*/
 }
 {
 ((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_3); /* next on <var_3:Iterator[MType]>*/
@@ -6380,7 +7342,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#compute_type_test_layouts for (self: SeparateCompiler, Set[MClassType], Set[MType]) */
+/* method separate_compiler$SeparateCompiler$compute_type_test_layouts for (self: SeparateCompiler, Set[MClassType], Set[MType]) */
 void nitc___nitc__SeparateCompiler___compute_type_test_layouts(val* self, val* p0, val* p1) {
 val* var_mtypes /* var mtypes: Set[MClassType] */;
 val* var_cast_types /* var cast_types: Set[MType] */;
@@ -6457,7 +7419,7 @@ var_mtypes = p0;
 var_cast_types = p1;
 var = NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Set__nitc__MType);
 {
-core___core__HashMap___core__kernel__Object__init(var); /* Direct call hash_collection#HashMap#init on <var:HashMap[MClass, Set[MType]]>*/
+core___core__HashMap___core__kernel__Object__init(var); /* Direct call hash_collection$HashMap$init on <var:HashMap[MClass, Set[MType]]>*/
 }
 var_bucklets = var;
 var_ = var_cast_types;
@@ -6495,11 +7457,14 @@ PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 514);
 fatal_exit(1);
 }
 {
-{ /* Inline model#MClassType#mclass (var5) on <var5:MType(MClassType)> */
+{ /* Inline model$MClassType$mclass (var5) on <var5:MType(MClassType)> */
 var9 = var5->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var5:MType(MClassType)> */
 if (unlikely(var9 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
 fatal_exit(1);
 }
 var7 = var9;
@@ -6514,10 +7479,10 @@ var11 = !var10;
 if (var11){
 var12 = NEW_core__HashSet(&type_core__HashSet__nitc__MType);
 {
-core___core__HashSet___core__kernel__Object__init(var12); /* Direct call hash_collection#HashSet#init on <var12:HashSet[MType]>*/
+core___core__HashSet___core__kernel__Object__init(var12); /* Direct call hash_collection$HashSet$init on <var12:HashSet[MType]>*/
 }
 {
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_bucklets, var_c, var12); /* Direct call hash_collection#HashMap#[]= on <var_bucklets:HashMap[MClass, Set[MType]]>*/
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_bucklets, var_c, var12); /* Direct call hash_collection$HashMap$[]= on <var_bucklets:HashMap[MClass, Set[MType]]>*/
 }
 } else {
 }
@@ -6537,9 +7502,12 @@ BREAK_label: (void)0;
 }
 var14 = NEW_nitc__POSetGroupColorer(&type_nitc__POSetGroupColorer__nitc__MClass__nitc__MType);
 {
-{ /* Inline separate_compiler#SeparateCompiler#class_conflict_graph (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$class_conflict_graph (self) on <self:SeparateCompiler> */
 var17 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph].val; /* _class_conflict_graph on <self:SeparateCompiler> */
 if (unlikely(var17 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 310);
 fatal_exit(1);
@@ -6562,36 +7530,45 @@ var_colorer = var14;
 var18 = nitc___nitc__POSetGroupColorer___colors(var_colorer);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#type_colors= (self,var18) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$type_colors= (self,var18) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors].val = var18; /* _type_colors on <self:SeparateCompiler> */
 RET_LABEL19:(void)0;
 }
 }
 var20 = NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Array__nullable__nitc__MType);
 {
-core___core__HashMap___core__kernel__Object__init(var20); /* Direct call hash_collection#HashMap#init on <var20:HashMap[MClass, Array[nullable MType]]>*/
+core___core__HashMap___core__kernel__Object__init(var20); /* Direct call hash_collection$HashMap$init on <var20:HashMap[MClass, Array[nullable MType]]>*/
 }
 var_layouts = var20;
 {
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
 var23 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
 var21 = var23;
 RET_LABEL22:(void)0;
 }
 }
 if (var21 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 526);
 fatal_exit(1);
 } else {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var21) on <var21:nullable RapidTypeAnalysis> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_classes (var21) on <var21:nullable RapidTypeAnalysis> */
 if (unlikely(var21 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 69);
 fatal_exit(1);
 }
 var26 = var21->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on <var21:nullable RapidTypeAnalysis> */
 if (unlikely(var26 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 69);
 fatal_exit(1);
@@ -6621,7 +7598,7 @@ var_c33 = var32;
 var34 = nitc___nitc__POSetGroupColorer___build_layout(var_colorer, var_c33);
 }
 {
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_layouts, var_c33, var34); /* Direct call hash_collection#HashMap#[]= on <var_layouts:HashMap[MClass, Array[nullable MType]]>*/
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_layouts, var_c33, var34); /* Direct call hash_collection$HashMap$[]= on <var_layouts:HashMap[MClass, Array[nullable MType]]>*/
 }
 {
 ((void(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_29); /* next on <var_29:Iterator[MClass]>*/
@@ -6649,11 +7626,14 @@ var40 = ((val*(*)(val* self))((((long)var_37&3)?class_info[((long)var_37&3)]:var
 }
 var_t = var40;
 {
-{ /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
+{ /* Inline model$MClassType$mclass (var_t) on <var_t:MClassType> */
 var43 = var_t->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_t:MClassType> */
 if (unlikely(var43 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
 fatal_exit(1);
 }
 var41 = var43;
@@ -6667,22 +7647,25 @@ var45 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_
 var_layout = var45;
 var46 = NEW_core__Array(&type_core__Array__nullable__nitc__MType);
 {
-{ /* Inline array#AbstractArrayRead#length (var_layout) on <var_layout:Array[nullable MType]> */
+{ /* Inline array$AbstractArrayRead$length (var_layout) on <var_layout:Array[nullable MType]> */
 var49 = var_layout->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_layout:Array[nullable MType]> */
 var47 = var49;
 RET_LABEL48:(void)0;
 }
 }
 {
-core___core__Array___with_capacity(var46, var47); /* Direct call array#Array#with_capacity on <var46:Array[nullable MType]>*/
+core___core__Array___with_capacity(var46, var47); /* Direct call array$Array$with_capacity on <var46:Array[nullable MType]>*/
 }
 var_table = var46;
 {
-{ /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$type_tables (self) on <self:SeparateCompiler> */
 var52 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables].val; /* _type_tables on <self:SeparateCompiler> */
 if (unlikely(var52 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1065);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1071);
 fatal_exit(1);
 }
 var50 = var52;
@@ -6715,10 +7698,10 @@ var59 = 1; /* is null */
 var59 = 0; /* arg is null but recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#== (var_sup,((val*)NULL)) on <var_sup:nullable MType> */
+{ /* Inline kernel$Object$== (var_sup,((val*)NULL)) on <var_sup:nullable MType> */
 var_other = ((val*)NULL);
 {
-{ /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
+{ /* Inline kernel$Object$is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
 var64 = var_sup == var_other;
 var62 = var64;
 goto RET_LABEL63;
@@ -6733,15 +7716,18 @@ var59 = var60;
 }
 if (var59){
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_table, ((val*)NULL)); /* Direct call array#Array#add on <var_table:Array[nullable MType]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var_table, ((val*)NULL)); /* Direct call array$Array$add on <var_table:Array[nullable MType]>*/
 }
 } else {
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var67 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var67 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var65 = var67;
@@ -6753,11 +7739,11 @@ var68 = nitc___nitc__MType___is_subtype(var_t, var65, ((val*)NULL), var_sup);
 }
 if (var68){
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_table, var_sup); /* Direct call array#Array#add on <var_table:Array[nullable MType]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var_table, var_sup); /* Direct call array$Array$add on <var_table:Array[nullable MType]>*/
 }
 } else {
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_table, ((val*)NULL)); /* Direct call array#Array#add on <var_table:Array[nullable MType]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var_table, ((val*)NULL)); /* Direct call array$Array$add on <var_table:Array[nullable MType]>*/
 }
 }
 }
@@ -6779,7 +7765,7 @@ BREAK_label39: (void)0;
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#compute_resolution_tables for (self: SeparateCompiler, Set[MType]) */
+/* method separate_compiler$SeparateCompiler$compute_resolution_tables for (self: SeparateCompiler, Set[MType]) */
 void nitc___nitc__SeparateCompiler___compute_resolution_tables(val* self, val* p0) {
 val* var_mtypes /* var mtypes: Set[MType] */;
 val* var /* : HashMap[MClass, Set[MType]] */;
@@ -6856,29 +7842,38 @@ val* var78 /* : nullable Object */;
 var_mtypes = p0;
 var = NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Set__nitc__MType);
 {
-core___core__HashMap___core__kernel__Object__init(var); /* Direct call hash_collection#HashMap#init on <var:HashMap[MClass, Set[MType]]>*/
+core___core__HashMap___core__kernel__Object__init(var); /* Direct call hash_collection$HashMap$init on <var:HashMap[MClass, Set[MType]]>*/
 }
 var_mtype2unresolved = var;
 {
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
 var3 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
 var1 = var3;
 RET_LABEL2:(void)0;
 }
 }
 if (var1 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 559);
 fatal_exit(1);
 } else {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on <var1:nullable RapidTypeAnalysis> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_types (var1) on <var1:nullable RapidTypeAnalysis> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
 fatal_exit(1);
 }
 var6 = var1->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <var1:nullable RapidTypeAnalysis> */
 if (unlikely(var6 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
 fatal_exit(1);
@@ -6905,11 +7900,14 @@ var10 = ((val*(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8
 }
 var_mtype = var10;
 {
-{ /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
+{ /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
 var13 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
 if (unlikely(var13 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
 fatal_exit(1);
 }
 var11 = var13;
@@ -6933,20 +7931,23 @@ var15 = var16;
 if (var15){
 var17 = NEW_core__HashSet(&type_core__HashSet__nitc__MType);
 {
-core___core__HashSet___core__kernel__Object__init(var17); /* Direct call hash_collection#HashSet#init on <var17:HashSet[MType]>*/
+core___core__HashSet___core__kernel__Object__init(var17); /* Direct call hash_collection$HashSet$init on <var17:HashSet[MType]>*/
 }
 var_set = var17;
 {
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_mtype2unresolved, var_mclass, var_set); /* Direct call hash_collection#HashMap#[]= on <var_mtype2unresolved:HashMap[MClass, Set[MType]]>*/
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_mtype2unresolved, var_mclass, var_set); /* Direct call hash_collection$HashMap$[]= on <var_mtype2unresolved:HashMap[MClass, Set[MType]]>*/
 }
 } else {
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var20 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var20 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var18 = var20;
@@ -6974,9 +7975,12 @@ var27 = ((val*(*)(val* self))((((long)var_24&3)?class_info[((long)var_24&3)]:var
 }
 var_cd = var27;
 {
-{ /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$live_unresolved_types (self) on <self:SeparateCompiler> */
 var30 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on <self:SeparateCompiler> */
 if (unlikely(var30 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 147);
 fatal_exit(1);
@@ -6990,9 +7994,12 @@ var31 = ((short int(*)(val* self, val* p0))((((long)var28&3)?class_info[((long)v
 }
 if (var31){
 {
-{ /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$live_unresolved_types (self) on <self:SeparateCompiler> */
 var34 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on <self:SeparateCompiler> */
 if (unlikely(var34 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 147);
 fatal_exit(1);
@@ -7005,7 +8012,7 @@ RET_LABEL33:(void)0;
 var35 = ((val*(*)(val* self, val* p0))((((long)var32&3)?class_info[((long)var32&3)]:var32->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var32, var_cd); /* [] on <var32:Map[MClassDef, Set[MType]]>*/
 }
 {
-core___core__SimpleCollection___add_all(var_set, var35); /* Direct call abstract_collection#SimpleCollection#add_all on <var_set:nullable Set[MType](Set[MType])>*/
+core___core__SimpleCollection___add_all(var_set, var35); /* Direct call abstract_collection$SimpleCollection$add_all on <var_set:nullable Set[MType](Set[MType])>*/
 }
 } else {
 }
@@ -7027,7 +8034,7 @@ BREAK_label: (void)0;
 }
 var36 = NEW_nitc__BucketsColorer(&type_nitc__BucketsColorer__nitc__MClass__nitc__MType);
 {
-{ /* Inline kernel#Object#init (var36) on <var36:BucketsColorer[MClass, MType]> */
+{ /* Inline kernel$Object$init (var36) on <var36:BucketsColorer[MClass, MType]> */
 RET_LABEL37:(void)0;
 }
 }
@@ -7036,31 +8043,40 @@ var_colorer = var36;
 var38 = nitc___nitc__BucketsColorer___colorize(var_colorer, var_mtype2unresolved);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#opentype_colors= (self,var38) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$opentype_colors= (self,var38) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors].val = var38; /* _opentype_colors on <self:SeparateCompiler> */
 RET_LABEL39:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
 var42 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
 var40 = var42;
 RET_LABEL41:(void)0;
 }
 }
 if (var40 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 577);
 fatal_exit(1);
 } else {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var40) on <var40:nullable RapidTypeAnalysis> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_types (var40) on <var40:nullable RapidTypeAnalysis> */
 if (unlikely(var40 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
 fatal_exit(1);
 }
 var45 = var40->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <var40:nullable RapidTypeAnalysis> */
 if (unlikely(var45 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
 fatal_exit(1);
@@ -7073,20 +8089,23 @@ RET_LABEL44:(void)0;
 var46 = nitc___nitc__SeparateCompiler___build_resolution_tables(self, var43, var_mtype2unresolved);
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#resolution_tables= (self,var46) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$resolution_tables= (self,var46) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___resolution_tables].val = var46; /* _resolution_tables on <self:SeparateCompiler> */
 RET_LABEL47:(void)0;
 }
 }
 var48 = NEW_core__HashSet(&type_core__HashSet__nitc__MType);
 {
-core___core__HashSet___core__kernel__Object__init(var48); /* Direct call hash_collection#HashSet#init on <var48:HashSet[MType]>*/
+core___core__HashSet___core__kernel__Object__init(var48); /* Direct call hash_collection$HashSet$init on <var48:HashSet[MType]>*/
 }
 var_all_unresolved = var48;
 {
-{ /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$live_unresolved_types (self) on <self:SeparateCompiler> */
 var51 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on <self:SeparateCompiler> */
 if (unlikely(var51 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 147);
 fatal_exit(1);
@@ -7116,7 +8135,7 @@ var58 = ((val*(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var
 }
 var_t = var58;
 {
-core___core__SimpleCollection___add_all(var_all_unresolved, var_t); /* Direct call abstract_collection#SimpleCollection#add_all on <var_all_unresolved:HashSet[MType]>*/
+core___core__SimpleCollection___add_all(var_all_unresolved, var_t); /* Direct call abstract_collection$SimpleCollection$add_all on <var_all_unresolved:HashSet[MType]>*/
 }
 {
 ((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_55); /* next on <var_55:Iterator[Set[MType]]>*/
@@ -7128,7 +8147,7 @@ BREAK_label57: (void)0;
 }
 var59 = NEW_core__HashMap(&type_core__HashMap__nitc__MType__core__Int);
 {
-core___core__HashMap___core__kernel__Object__init(var59); /* Direct call hash_collection#HashMap#init on <var59:HashMap[MType, Int]>*/
+core___core__HashMap___core__kernel__Object__init(var59); /* Direct call hash_collection$HashMap$init on <var59:HashMap[MType, Int]>*/
 }
 var_all_unresolved_types_colors = var59;
 var_60 = var_all_unresolved;
@@ -7149,9 +8168,12 @@ var65 = ((val*(*)(val* self))((((long)var_62&3)?class_info[((long)var_62&3)]:var
 }
 var_t66 = var65;
 {
-{ /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$opentype_colors (self) on <self:SeparateCompiler> */
 var69 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on <self:SeparateCompiler> */
 if (unlikely(var69 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 151);
 fatal_exit(1);
@@ -7165,9 +8187,12 @@ var70 = ((short int(*)(val* self, val* p0))((((long)var67&3)?class_info[((long)v
 }
 if (var70){
 {
-{ /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$opentype_colors (self) on <self:SeparateCompiler> */
 var73 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on <self:SeparateCompiler> */
 if (unlikely(var73 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 151);
 fatal_exit(1);
@@ -7180,11 +8205,11 @@ RET_LABEL72:(void)0;
 var74 = ((val*(*)(val* self, val* p0))((((long)var71&3)?class_info[((long)var71&3)]:var71->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var71, var_t66); /* [] on <var71:Map[MType, Int]>*/
 }
 {
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_all_unresolved_types_colors, var_t66, var74); /* Direct call hash_collection#HashMap#[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_all_unresolved_types_colors, var_t66, var74); /* Direct call hash_collection$HashMap$[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
 }
 } else {
 {
-{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */
+{ /* Inline kernel$Int$unary - (1l) on <1l:Int> */
 var77 = -1l;
 var75 = var77;
 goto RET_LABEL76;
@@ -7193,7 +8218,7 @@ RET_LABEL76:(void)0;
 }
 {
 var78 = (val*)(var75<<2|1);
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_all_unresolved_types_colors, var_t66, var78); /* Direct call hash_collection#HashMap#[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_all_unresolved_types_colors, var_t66, var78); /* Direct call hash_collection$HashMap$[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
 }
 }
 {
@@ -7205,11 +8230,11 @@ BREAK_label64: (void)0;
 ((void(*)(val* self))((((long)var_62&3)?class_info[((long)var_62&3)]:var_62->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_62); /* finish on <var_62:Iterator[MType]>*/
 }
 {
-nitc___nitc__SeparateCompiler___compile_color_consts(self, var_all_unresolved_types_colors); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___compile_color_consts(self, var_all_unresolved_types_colors); /* Direct call separate_compiler$SeparateCompiler$compile_color_consts on <self:SeparateCompiler>*/
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: SeparateCompiler, Set[MClassType], Map[MClass, Set[MType]]): Map[MClassType, Array[nullable MType]] */
+/* method separate_compiler$SeparateCompiler$build_resolution_tables for (self: SeparateCompiler, Set[MClassType], Map[MClass, Set[MType]]): Map[MClassType, Array[nullable MType]] */
 val* nitc___nitc__SeparateCompiler___build_resolution_tables(val* self, val* p0, val* p1) {
 val* var /* : Map[MClassType, Array[nullable MType]] */;
 val* var_elements /* var elements: Set[MClassType] */;
@@ -7262,7 +8287,7 @@ var_elements = p0;
 var_map = p1;
 var1 = NEW_core__HashMap(&type_core__HashMap__nitc__MClassType__core__Array__nullable__nitc__MType);
 {
-core___core__HashMap___core__kernel__Object__init(var1); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MClassType, Array[nullable MType]]>*/
+core___core__HashMap___core__kernel__Object__init(var1); /* Direct call hash_collection$HashMap$init on <var1:HashMap[MClassType, Array[nullable MType]]>*/
 }
 var_tables = var1;
 var_ = var_elements;
@@ -7283,11 +8308,14 @@ var5 = ((val*(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3-
 }
 var_mclasstype = var5;
 {
-{ /* Inline model#MClassType#mclass (var_mclasstype) on <var_mclasstype:MClassType> */
+{ /* Inline model$MClassType$mclass (var_mclasstype) on <var_mclasstype:MClassType> */
 var8 = var_mclasstype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mclasstype:MClassType> */
 if (unlikely(var8 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
 fatal_exit(1);
 }
 var6 = var8;
@@ -7300,7 +8328,7 @@ var9 = ((val*(*)(val* self, val* p0))((((long)var_map&3)?class_info[((long)var_m
 var_mtypes = var9;
 var10 = NEW_core__Array(&type_core__Array__nullable__nitc__MType);
 {
-core___core__Array___core__kernel__Object__init(var10); /* Direct call array#Array#init on <var10:Array[nullable MType]>*/
+core___core__Array___core__kernel__Object__init(var10); /* Direct call array$Array$init on <var10:Array[nullable MType]>*/
 }
 var_table = var10;
 var_11 = var_mtypes;
@@ -7321,9 +8349,12 @@ var16 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var
 }
 var_mtype = var16;
 {
-{ /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$opentype_colors (self) on <self:SeparateCompiler> */
 var19 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors].val; /* _opentype_colors on <self:SeparateCompiler> */
 if (unlikely(var19 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 151);
 fatal_exit(1);
@@ -7338,21 +8369,21 @@ var20 = ((val*(*)(val* self, val* p0))((((long)var17&3)?class_info[((long)var17&
 var21 = (long)(var20)>>2;
 var_color = var21;
 {
-{ /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
+{ /* Inline array$AbstractArrayRead$length (var_table) on <var_table:Array[nullable MType]> */
 var24 = var_table->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table:Array[nullable MType]> */
 var22 = var24;
 RET_LABEL23:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#<= (var22,var_color) on <var22:Int> */
+{ /* Inline kernel$Int$<= (var22,var_color) on <var22:Int> */
 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
 /* <var_color:Int> isa OTHER */
 var27 = 1; /* easy <var_color:Int> isa OTHER*/
 if (unlikely(!var27)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
 fatal_exit(1);
 }
 var28 = var22 <= var_color;
@@ -7363,7 +8394,7 @@ RET_LABEL26:(void)0;
 }
 if (var25){
 {
-{ /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
+{ /* Inline array$AbstractArrayRead$length (var_table) on <var_table:Array[nullable MType]> */
 var31 = var_table->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table:Array[nullable MType]> */
 var29 = var31;
 RET_LABEL30:(void)0;
@@ -7373,14 +8404,14 @@ var_i = var29;
 var_32 = var_color;
 for(;;) {
 {
-{ /* Inline kernel#Int#< (var_i,var_32) on <var_i:Int> */
+{ /* Inline kernel$Int$< (var_i,var_32) on <var_i:Int> */
 /* Covariant cast for argument 0 (i) <var_32:Int> isa OTHER */
 /* <var_32:Int> isa OTHER */
 var35 = 1; /* easy <var_32:Int> isa OTHER*/
 if (unlikely(!var35)) {
 var_class_name38 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var39 = var_i < var_32;
@@ -7394,7 +8425,7 @@ if (var33){
 goto BREAK_label40;
 }
 {
-core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table, var_i, ((val*)NULL)); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
+core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table, var_i, ((val*)NULL)); /* Direct call array$Array$[]= on <var_table:Array[nullable MType]>*/
 }
 {
 var41 = core___core__Int___Discrete__successor(var_i, 1l);
@@ -7405,7 +8436,7 @@ BREAK_label40: (void)0;
 } else {
 }
 {
-core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table, var_color, var_mtype); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
+core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table, var_color, var_mtype); /* Direct call array$Array$[]= on <var_table:Array[nullable MType]>*/
 }
 {
 ((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_13); /* next on <var_13:Iterator[MType]>*/
@@ -7416,7 +8447,7 @@ BREAK_label15: (void)0;
 ((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_13); /* finish on <var_13:Iterator[MType]>*/
 }
 {
-core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_tables, var_mclasstype, var_table); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MClassType, Array[nullable MType]]>*/
+core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_tables, var_mclasstype, var_table); /* Direct call hash_collection$HashMap$[]= on <var_tables:HashMap[MClassType, Array[nullable MType]]>*/
 }
 {
 ((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_3); /* next on <var_3:Iterator[MClassType]>*/
@@ -7431,7 +8462,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: SeparateCompiler, MModule) */
+/* method separate_compiler$SeparateCompiler$compile_module_to_c for (self: SeparateCompiler, MModule) */
 void nitc___nitc__SeparateCompiler___compile_module_to_c(val* self, val* p0) {
 val* var_mmodule /* var mmodule: MModule */;
 val* var /* : MModule */;
@@ -7517,11 +8548,14 @@ val* var93 /* : nullable Object */;
 short int var94 /* : Bool */;
 var_mmodule = p0;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var = var2;
@@ -7530,17 +8564,20 @@ RET_LABEL1:(void)0;
 }
 var_old_module = var;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_mmodule) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule= (self,var_mmodule) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val = var_mmodule; /* _mainmodule on <self:SeparateCompiler> */
 RET_LABEL3:(void)0;
 }
 }
 {
-{ /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
+{ /* Inline model$MModule$mclassdefs (var_mmodule) on <var_mmodule:MModule> */
 var6 = var_mmodule->attrs[COLOR_nitc__model__MModule___mclassdefs].val; /* _mclassdefs on <var_mmodule:MModule> */
 if (unlikely(var6 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 141);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 150);
 fatal_exit(1);
 }
 var4 = var6;
@@ -7565,11 +8602,14 @@ var10 = ((val*(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8
 }
 var_cd = var10;
 {
-{ /* Inline model#MClassDef#mpropdefs (var_cd) on <var_cd:MClassDef> */
+{ /* Inline model$MClassDef$mpropdefs (var_cd) on <var_cd:MClassDef> */
 var13 = var_cd->attrs[COLOR_nitc__model__MClassDef___mpropdefs].val; /* _mpropdefs on <var_cd:MClassDef> */
 if (unlikely(var13 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 707);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 723);
 fatal_exit(1);
 }
 var11 = var13;
@@ -7607,11 +8647,14 @@ goto BREAK_label22;
 } else {
 }
 {
-{ /* Inline model#MPropDef#mproperty (var_pd) on <var_pd:MPropDef(MMethodDef)> */
+{ /* Inline model$MPropDef$mproperty (var_pd) on <var_pd:MPropDef(MMethodDef)> */
 var27 = var_pd->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_pd:MPropDef(MMethodDef)> */
 if (unlikely(var27 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
 fatal_exit(1);
 }
 var25 = var27;
@@ -7619,7 +8662,7 @@ RET_LABEL26:(void)0;
 }
 }
 {
-{ /* Inline model_base#MEntity#is_broken (var25) on <var25:MProperty(MMethod)> */
+{ /* Inline model_base$MEntity$is_broken (var25) on <var25:MProperty(MMethod)> */
 var30 = var25->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var25:MProperty(MMethod)> */
 var28 = var30;
 RET_LABEL29:(void)0;
@@ -7630,7 +8673,7 @@ if (var28){
 var24 = var_31;
 } else {
 {
-{ /* Inline model_base#MEntity#is_broken (var_pd) on <var_pd:MPropDef(MMethodDef)> */
+{ /* Inline model_base$MEntity$is_broken (var_pd) on <var_pd:MPropDef(MMethodDef)> */
 var34 = var_pd->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_pd:MPropDef(MMethodDef)> */
 var32 = var34;
 RET_LABEL33:(void)0;
@@ -7643,7 +8686,7 @@ if (var24){
 var23 = var_35;
 } else {
 {
-{ /* Inline model#MMethodDef#msignature (var_pd) on <var_pd:MPropDef(MMethodDef)> */
+{ /* Inline model$MMethodDef$msignature (var_pd) on <var_pd:MPropDef(MMethodDef)> */
 var38 = var_pd->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_pd:MPropDef(MMethodDef)> */
 var36 = var38;
 RET_LABEL37:(void)0;
@@ -7655,10 +8698,10 @@ var39 = 1; /* is null */
 var39 = 0; /* arg is null but recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#== (var36,((val*)NULL)) on <var36:nullable MSignature> */
+{ /* Inline kernel$Object$== (var36,((val*)NULL)) on <var36:nullable MSignature> */
 var_other = ((val*)NULL);
 {
-{ /* Inline kernel#Object#is_same_instance (var36,var_other) on <var36:nullable MSignature(MSignature)> */
+{ /* Inline kernel$Object$is_same_instance (var36,var_other) on <var36:nullable MSignature(MSignature)> */
 var44 = var36 == var_other;
 var42 = var44;
 goto RET_LABEL43;
@@ -7678,7 +8721,7 @@ goto BREAK_label22;
 } else {
 }
 {
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
 var47 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
 var45 = var47;
 RET_LABEL46:(void)0;
@@ -7686,11 +8729,14 @@ RET_LABEL46:(void)0;
 }
 var_rta = var45;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
 var52 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
 if (unlikely(var52 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
 var50 = var52;
@@ -7698,9 +8744,12 @@ RET_LABEL51:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var50) on <var50:ModelBuilder> */
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var50) on <var50:ModelBuilder> */
 var55 = var50->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var50:ModelBuilder> */
 if (unlikely(var55 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
@@ -7710,9 +8759,12 @@ RET_LABEL54:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (var53) on <var53:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_skip_dead_methods (var53) on <var53:ToolContext> */
 var58 = var53->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_skip_dead_methods].val; /* _opt_skip_dead_methods on <var53:ToolContext> */
 if (unlikely(var58 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 54);
 fatal_exit(1);
@@ -7722,7 +8774,7 @@ RET_LABEL57:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var56) on <var56:OptionBool> */
+{ /* Inline opts$Option$value (var56) on <var56:OptionBool> */
 var61 = var56->attrs[COLOR_opts__Option___value].val; /* _value on <var56:OptionBool> */
 var59 = var61;
 RET_LABEL60:(void)0;
@@ -7737,7 +8789,7 @@ var64 = 0; /* is null */
 var64 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
+{ /* Inline kernel$Object$!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
 var_other67 = ((val*)NULL);
 {
 var68 = ((short int(*)(val* self, val* p0))(var_rta->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rta, var_other67); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
@@ -7756,9 +8808,12 @@ var49 = var_63;
 var_70 = var49;
 if (var49){
 {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var73 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 if (unlikely(var73 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 79);
 fatal_exit(1);
@@ -7784,14 +8839,14 @@ var76 = nitc__separate_compiler___MMethodDef___separate_runtime_function(var_pd)
 }
 var_r = var76;
 {
-nitc___nitc__SeparateRuntimeFunction___nitc__abstract_compiler__AbstractRuntimeFunction__compile_to_c(var_r, self); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_to_c on <var_r:SeparateRuntimeFunction>*/
+nitc___nitc__SeparateRuntimeFunction___nitc__abstract_compiler__AbstractRuntimeFunction__compile_to_c(var_r, self); /* Direct call separate_compiler$SeparateRuntimeFunction$compile_to_c on <var_r:SeparateRuntimeFunction>*/
 }
 {
 var77 = nitc__separate_compiler___MMethodDef___virtual_runtime_function(var_pd);
 }
 var_r2 = var77;
 {
-{ /* Inline kernel#Object#!= (var_r2,var_r) on <var_r2:SeparateRuntimeFunction> */
+{ /* Inline kernel$Object$!= (var_r2,var_r) on <var_r2:SeparateRuntimeFunction> */
 var_other67 = var_r;
 {
 var80 = ((short int(*)(val* self, val* p0))(var_r2->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_r2, var_other67); /* == on <var_r2:SeparateRuntimeFunction>*/
@@ -7804,16 +8859,19 @@ RET_LABEL79:(void)0;
 }
 if (var78){
 {
-nitc___nitc__SeparateRuntimeFunction___nitc__abstract_compiler__AbstractRuntimeFunction__compile_to_c(var_r2, self); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_to_c on <var_r2:SeparateRuntimeFunction>*/
+nitc___nitc__SeparateRuntimeFunction___nitc__abstract_compiler__AbstractRuntimeFunction__compile_to_c(var_r2, self); /* Direct call separate_compiler$SeparateRuntimeFunction$compile_to_c on <var_r2:SeparateRuntimeFunction>*/
 }
 } else {
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
 var84 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
 if (unlikely(var84 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
 var82 = var84;
@@ -7821,9 +8879,12 @@ RET_LABEL83:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var82) on <var82:ModelBuilder> */
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var82) on <var82:ModelBuilder> */
 var87 = var82->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var82:ModelBuilder> */
 if (unlikely(var87 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
@@ -7833,9 +8894,12 @@ RET_LABEL86:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_trampoline_call (var85) on <var85:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_trampoline_call (var85) on <var85:ToolContext> */
 var90 = var85->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_trampoline_call].val; /* _opt_trampoline_call on <var85:ToolContext> */
 if (unlikely(var90 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 37);
 fatal_exit(1);
@@ -7845,7 +8909,7 @@ RET_LABEL89:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var88) on <var88:OptionBool> */
+{ /* Inline opts$Option$value (var88) on <var88:OptionBool> */
 var93 = var88->attrs[COLOR_opts__Option___value].val; /* _value on <var88:OptionBool> */
 var91 = var93;
 RET_LABEL92:(void)0;
@@ -7854,7 +8918,7 @@ RET_LABEL92:(void)0;
 var94 = (short int)((long)(var91)>>2);
 if (var94){
 {
-nitc___nitc__SeparateRuntimeFunction___compile_trampolines(var_r2, self); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_trampolines on <var_r2:SeparateRuntimeFunction>*/
+nitc___nitc__SeparateRuntimeFunction___compile_trampolines(var_r2, self); /* Direct call separate_compiler$SeparateRuntimeFunction$compile_trampolines on <var_r2:SeparateRuntimeFunction>*/
 }
 } else {
 }
@@ -7876,14 +8940,14 @@ BREAK_label: (void)0;
 ((void(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_8); /* finish on <var_8:IndexedIterator[MClassDef]>*/
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_old_module) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule= (self,var_old_module) on <self:SeparateCompiler> */
 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val = var_old_module; /* _mainmodule on <self:SeparateCompiler> */
 RET_LABEL95:(void)0;
 }
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#link_mmethods for (self: SeparateCompiler) */
+/* method separate_compiler$SeparateCompiler$link_mmethods for (self: SeparateCompiler) */
 void nitc___nitc__SeparateCompiler___link_mmethods(val* self) {
 short int var /* : Bool */;
 val* var1 /* : ModelBuilder */;
@@ -7939,11 +9003,14 @@ int cltype;
 int idtype;
 short int var60 /* : Bool */;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
 if (unlikely(var3 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
 var1 = var3;
@@ -7951,9 +9018,12 @@ RET_LABEL2:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var1) on <var1:ModelBuilder> */
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var1) on <var1:ModelBuilder> */
 var6 = var1->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var1:ModelBuilder> */
 if (unlikely(var6 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
@@ -7963,9 +9033,12 @@ RET_LABEL5:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (var4) on <var4:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_substitute_monomorph (var4) on <var4:ToolContext> */
 var9 = var4->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_substitute_monomorph].val; /* _opt_substitute_monomorph on <var4:ToolContext> */
 if (unlikely(var9 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 41);
 fatal_exit(1);
@@ -7975,7 +9048,7 @@ RET_LABEL8:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var7) on <var7:OptionBool> */
+{ /* Inline opts$Option$value (var7) on <var7:OptionBool> */
 var12 = var7->attrs[COLOR_opts__Option___value].val; /* _value on <var7:OptionBool> */
 var10 = var12;
 RET_LABEL11:(void)0;
@@ -7986,11 +9059,14 @@ var14 = !var13;
 var_ = var14;
 if (var14){
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
 var17 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
 if (unlikely(var17 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
 var15 = var17;
@@ -7998,9 +9074,12 @@ RET_LABEL16:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var15) on <var15:ModelBuilder> */
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var15) on <var15:ModelBuilder> */
 var20 = var15->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var15:ModelBuilder> */
 if (unlikely(var20 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
@@ -8010,9 +9089,12 @@ RET_LABEL19:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_guard_call (var18) on <var18:ToolContext> */
+{ /* Inline separate_compiler$ToolContext$opt_guard_call (var18) on <var18:ToolContext> */
 var23 = var18->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_guard_call].val; /* _opt_guard_call on <var18:ToolContext> */
 if (unlikely(var23 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 39);
 fatal_exit(1);
@@ -8022,7 +9104,7 @@ RET_LABEL22:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var21) on <var21:OptionBool> */
+{ /* Inline opts$Option$value (var21) on <var21:OptionBool> */
 var26 = var21->attrs[COLOR_opts__Option___value].val; /* _value on <var21:OptionBool> */
 var24 = var26;
 RET_LABEL25:(void)0;
@@ -8039,11 +9121,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
+{ /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
 var31 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
 if (unlikely(var31 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
 fatal_exit(1);
 }
 var29 = var31;
@@ -8051,11 +9136,14 @@ RET_LABEL30:(void)0;
 }
 }
 {
-{ /* Inline mmodule#MModule#in_importation (var29) on <var29:MModule> */
+{ /* Inline mmodule$MModule$in_importation (var29) on <var29:MModule> */
 var34 = var29->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var29:MModule> */
 if (unlikely(var34 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
 fatal_exit(1);
 }
 var32 = var34;
@@ -8083,11 +9171,14 @@ var40 = ((val*(*)(val* self))((((long)var_38&3)?class_info[((long)var_38&3)]:var
 }
 var_mmodule = var40;
 {
-{ /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
+{ /* Inline model$MModule$mclassdefs (var_mmodule) on <var_mmodule:MModule> */
 var43 = var_mmodule->attrs[COLOR_nitc__model__MModule___mclassdefs].val; /* _mclassdefs on <var_mmodule:MModule> */
 if (unlikely(var43 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 141);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 150);
 fatal_exit(1);
 }
 var41 = var43;
@@ -8112,11 +9203,14 @@ var49 = ((val*(*)(val* self))((((long)var_46&3)?class_info[((long)var_46&3)]:var
 }
 var_cd = var49;
 {
-{ /* Inline model#MClassDef#intro_mproperties (var_cd) on <var_cd:MClassDef> */
+{ /* Inline model$MClassDef$intro_mproperties (var_cd) on <var_cd:MClassDef> */
 var52 = var_cd->attrs[COLOR_nitc__model__MClassDef___intro_mproperties].val; /* _intro_mproperties on <var_cd:MClassDef> */
 if (unlikely(var52 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 704);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 720);
 fatal_exit(1);
 }
 var50 = var52;
@@ -8154,7 +9248,7 @@ goto BREAK_label61;
 } else {
 }
 {
-nitc___nitc__SeparateCompiler___link_mmethod(self, var_m); /* Direct call separate_compiler#SeparateCompiler#link_mmethod on <self:SeparateCompiler>*/
+nitc___nitc__SeparateCompiler___link_mmethod(self, var_m); /* Direct call separate_compiler$SeparateCompiler$link_mmethod on <self:SeparateCompiler>*/
 }
 BREAK_label61: (void)0;
 {
@@ -8183,262 +9277,317 @@ BREAK_label: (void)0;
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#link_mmethod for (self: SeparateCompiler, MMethod) */
+/* method separate_compiler$SeparateCompiler$link_mmethod for (self: SeparateCompiler, MMethod) */
 void nitc___nitc__SeparateCompiler___link_mmethod(val* self, val* p0) {
 val* var_m /* var m: MMethod */;
 static val* varonce;
 val* var /* : String */;
-char* var1 /* : NativeString */;
+char* var1 /* : CString */;
 val* var2 /* : String */;
-val* var3 /* : String */;
-val* var4 /* : String */;
+val* var3 /* : nullable Int */;
+val* var4 /* : nullable Int */;
+val* var5 /* : nullable Bool */;
+val* var6 /* : nullable Bool */;
+val* var7 /* : String */;
+val* var8 /* : Text */;
 val* var_n2 /* var n2: String */;
-val* var5 /* : nullable MMethodDef */;
+val* var9 /* : nullable MMethodDef */;
 val* var_md /* var md: nullable MMethodDef */;
-short int var6 /* : Bool */;
-short int var7 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var9 /* : Bool */;
 short int var10 /* : Bool */;
-val* var11 /* : Array[String] */;
-val* var13 /* : Array[String] */;
-val* var15 /* : NativeArray[String] */;
-static val* varonce14;
-static val* varonce16;
-val* var17 /* : String */;
-char* var18 /* : NativeString */;
-val* var19 /* : String */;
+short int var11 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var13 /* : Bool */;
+short int var14 /* : Bool */;
+val* var15 /* : Array[String] */;
+val* var17 /* : Array[String] */;
+val* var19 /* : NativeArray[String] */;
+static val* varonce18;
 static val* varonce20;
 val* var21 /* : String */;
-char* var22 /* : NativeString */;
+char* var22 /* : CString */;
 val* var23 /* : String */;
-val* var24 /* : SeparateRuntimeFunction */;
-val* var25 /* : String */;
-val* var26 /* : String */;
-val* var27 /* : ModelBuilder */;
-val* var29 /* : ModelBuilder */;
-val* var30 /* : ToolContext */;
-val* var32 /* : ToolContext */;
-val* var33 /* : OptionBool */;
-val* var35 /* : OptionBool */;
-val* var36 /* : nullable Object */;
-val* var38 /* : nullable Object */;
-short int var39 /* : Bool */;
-val* var40 /* : MPropDef */;
-val* var42 /* : MPropDef */;
-val* var43 /* : SeparateRuntimeFunction */;
+val* var24 /* : nullable Int */;
+val* var25 /* : nullable Int */;
+val* var26 /* : nullable Bool */;
+val* var27 /* : nullable Bool */;
+static val* varonce28;
+val* var29 /* : String */;
+char* var30 /* : CString */;
+val* var31 /* : String */;
+val* var32 /* : nullable Int */;
+val* var33 /* : nullable Int */;
+val* var34 /* : nullable Bool */;
+val* var35 /* : nullable Bool */;
+val* var36 /* : SeparateRuntimeFunction */;
+val* var37 /* : String */;
+val* var38 /* : String */;
+val* var39 /* : ModelBuilder */;
+val* var41 /* : ModelBuilder */;
+val* var42 /* : ToolContext */;
+val* var44 /* : ToolContext */;
+val* var45 /* : OptionBool */;
+val* var47 /* : OptionBool */;
+val* var48 /* : nullable Object */;
+val* var50 /* : nullable Object */;
+short int var51 /* : Bool */;
+val* var52 /* : MPropDef */;
+val* var54 /* : MPropDef */;
+val* var55 /* : SeparateRuntimeFunction */;
 val* var_r /* var r: SeparateRuntimeFunction */;
-val* var45 /* : NativeArray[String] */;
-static val* varonce44;
-static val* varonce46;
-val* var47 /* : String */;
-char* var48 /* : NativeString */;
-val* var49 /* : String */;
-static val* varonce50;
-val* var51 /* : String */;
-char* var52 /* : NativeString */;
-val* var53 /* : String */;
-val* var54 /* : String */;
-val* var55 /* : String */;
-val* var56 /* : String */;
+val* var57 /* : NativeArray[String] */;
+static val* varonce56;
+static val* varonce58;
+val* var59 /* : String */;
+char* var60 /* : CString */;
+val* var61 /* : String */;
+val* var62 /* : nullable Int */;
+val* var63 /* : nullable Int */;
+val* var64 /* : nullable Bool */;
+val* var65 /* : nullable Bool */;
+static val* varonce66;
+val* var67 /* : String */;
+char* var68 /* : CString */;
+val* var69 /* : String */;
+val* var70 /* : nullable Int */;
+val* var71 /* : nullable Int */;
+val* var72 /* : nullable Bool */;
+val* var73 /* : nullable Bool */;
+val* var74 /* : String */;
+val* var75 /* : String */;
+val* var76 /* : String */;
 var_m = p0;
 if (likely(varonce!=NULL)) {
 var = varonce;
 } else {
 var1 = "CALL_";
-var2 = core__flat___NativeString___to_s_full(var1, 5l, 5l);
+var3 = (val*)(5l<<2|1);
+var4 = (val*)(5l<<2|1);
+var5 = (val*)((long)(0)<<2|3);
+var6 = (val*)((long)(0)<<2|3);
+var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
 var = var2;
 varonce = var;
 }
 {
-var3 = nitc__separate_compiler___MEntity___const_color(var_m);
+var7 = nitc__separate_compiler___MEntity___const_color(var_m);
 }
 {
-var4 = ((val*(*)(val* self, val* p0))(var->class->vft[COLOR_core__abstract_text__String___43d]))(var, var3); /* + on <var:String>*/
+var8 = ((val*(*)(val* self, val* p0))(var->class->vft[COLOR_core__abstract_text__Text___43d]))(var, var7); /* + on <var:String>*/
 }
-var_n2 = var4;
+var_n2 = var8;
 {
-var5 = nitc___nitc__SeparateCompiler___is_monomorphic(self, var_m);
+var9 = nitc___nitc__SeparateCompiler___is_monomorphic(self, var_m);
 }
-var_md = var5;
+var_md = var9;
 if (var_md == NULL) {
-var6 = 0; /* is null */
+var10 = 0; /* is null */
 } else {
-var6 = 1; /* arg is null and recv is not */
+var10 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_md,((val*)NULL)) on <var_md:nullable MMethodDef> */
+{ /* Inline kernel$Object$!= (var_md,((val*)NULL)) on <var_md:nullable MMethodDef> */
 var_other = ((val*)NULL);
 {
-var9 = ((short int(*)(val* self, val* p0))(var_md->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_md, var_other); /* == on <var_md:nullable MMethodDef(MMethodDef)>*/
+var13 = ((short int(*)(val* self, val* p0))(var_md->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_md, var_other); /* == on <var_md:nullable MMethodDef(MMethodDef)>*/
 }
-var10 = !var9;
-var7 = var10;
-goto RET_LABEL8;
-RET_LABEL8:(void)0;
+var14 = !var13;
+var11 = var14;
+goto RET_LABEL12;
+RET_LABEL12:(void)0;
 }
-var6 = var7;
+var10 = var11;
 }
-if (var6){
+if (var10){
 {
-{ /* Inline abstract_compiler#AbstractCompiler#linker_script (self) on <self:SeparateCompiler> */
-var13 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___linker_script].val; /* _linker_script on <self:SeparateCompiler> */
-if (unlikely(var13 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$linker_script (self) on <self:SeparateCompiler> */
+var17 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___linker_script].val; /* _linker_script on <self:SeparateCompiler> */
+if (unlikely(var17 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _linker_script");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 588);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 602);
 fatal_exit(1);
 }
-var11 = var13;
-RET_LABEL12:(void)0;
-}
+var15 = var17;
+RET_LABEL16:(void)0;
 }
-if (unlikely(varonce14==NULL)) {
-var15 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
-if (likely(varonce16!=NULL)) {
-var17 = varonce16;
-} else {
-var18 = " = ";
-var19 = core__flat___NativeString___to_s_full(var18, 3l, 3l);
-var17 = var19;
-varonce16 = var17;
 }
-((struct instance_core__NativeArray*)var15)->values[1]=var17;
+if (unlikely(varonce18==NULL)) {
+var19 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
 if (likely(varonce20!=NULL)) {
 var21 = varonce20;
 } else {
-var22 = ";";
-var23 = core__flat___NativeString___to_s_full(var22, 1l, 1l);
+var22 = " = ";
+var24 = (val*)(3l<<2|1);
+var25 = (val*)(3l<<2|1);
+var26 = (val*)((long)(0)<<2|3);
+var27 = (val*)((long)(0)<<2|3);
+var23 = core__flat___CString___to_s_unsafe(var22, var24, var25, var26, var27);
 var21 = var23;
 varonce20 = var21;
 }
-((struct instance_core__NativeArray*)var15)->values[3]=var21;
+((struct instance_core__NativeArray*)var19)->values[1]=var21;
+if (likely(varonce28!=NULL)) {
+var29 = varonce28;
+} else {
+var30 = ";";
+var32 = (val*)(1l<<2|1);
+var33 = (val*)(1l<<2|1);
+var34 = (val*)((long)(0)<<2|3);
+var35 = (val*)((long)(0)<<2|3);
+var31 = core__flat___CString___to_s_unsafe(var30, var32, var33, var34, var35);
+var29 = var31;
+varonce28 = var29;
+}
+((struct instance_core__NativeArray*)var19)->values[3]=var29;
 } else {
-var15 = varonce14;
-varonce14 = NULL;
+var19 = varonce18;
+varonce18 = NULL;
 }
-((struct instance_core__NativeArray*)var15)->values[0]=var_n2;
+((struct instance_core__NativeArray*)var19)->values[0]=var_n2;
 {
-var24 = nitc__separate_compiler___MMethodDef___virtual_runtime_function(var_md);
+var36 = nitc__separate_compiler___MMethodDef___virtual_runtime_function(var_md);
 }
 {
-var25 = nitc___nitc__AbstractRuntimeFunction___c_name(var24);
+var37 = nitc___nitc__AbstractRuntimeFunction___c_name(var36);
 }
-((struct instance_core__NativeArray*)var15)->values[2]=var25;
+((struct instance_core__NativeArray*)var19)->values[2]=var37;
 {
-var26 = ((val*(*)(val* self))(var15->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
+var38 = ((val*(*)(val* self))(var19->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var19); /* native_to_s on <var19:NativeArray[String]>*/
 }
-varonce14 = var15;
+varonce18 = var19;
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var11, var26); /* Direct call array#Array#add on <var11:Array[String]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var15, var38); /* Direct call array$Array$add on <var15:Array[String]>*/
 }
 } else {
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
-var29 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
-if (unlikely(var29 == NULL)) {
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
+var41 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
+if (unlikely(var41 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
 fatal_exit(1);
 }
-var27 = var29;
-RET_LABEL28:(void)0;
+var39 = var41;
+RET_LABEL40:(void)0;
 }
 }
 {
-{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var27) on <var27:ModelBuilder> */
-var32 = var27->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var27:ModelBuilder> */
-if (unlikely(var32 == NULL)) {
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var39) on <var39:ModelBuilder> */
+var44 = var39->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var39:ModelBuilder> */
+if (unlikely(var44 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
 fatal_exit(1);
 }
-var30 = var32;
-RET_LABEL31:(void)0;
+var42 = var44;
+RET_LABEL43:(void)0;
 }
 }
 {
-{ /* Inline separate_compiler#ToolContext#opt_guard_call (var30) on <var30:ToolContext> */
-var35 = var30->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_guard_call].val; /* _opt_guard_call on <var30:ToolContext> */
-if (unlikely(var35 == NULL)) {
+{ /* Inline separate_compiler$ToolContext$opt_guard_call (var42) on <var42:ToolContext> */
+var47 = var42->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_guard_call].val; /* _opt_guard_call on <var42:ToolContext> */
+if (unlikely(var47 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 39);
 fatal_exit(1);
 }
-var33 = var35;
-RET_LABEL34:(void)0;
+var45 = var47;
+RET_LABEL46:(void)0;
 }
 }
 {
-{ /* Inline opts#Option#value (var33) on <var33:OptionBool> */
-var38 = var33->attrs[COLOR_opts__Option___value].val; /* _value on <var33:OptionBool> */
-var36 = var38;
-RET_LABEL37:(void)0;
+{ /* Inline opts$Option$value (var45) on <var45:OptionBool> */
+var50 = var45->attrs[COLOR_opts__Option___value].val; /* _value on <var45:OptionBool> */
+var48 = var50;
+RET_LABEL49:(void)0;
 }
 }
-var39 = (short int)((long)(var36)>>2);
-if (var39){
+var51 = (short int)((long)(var48)>>2);
+if (var51){
 {
-{ /* Inline model#MProperty#intro (var_m) on <var_m:MMethod> */
-var42 = var_m->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_m:MMethod> */
-if (unlikely(var42 == NULL)) {
+{ /* Inline model$MProperty$intro (var_m) on <var_m:MMethod> */
+var54 = var_m->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_m:MMethod> */
+if (unlikely(var54 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1986);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
 fatal_exit(1);
 }
-var40 = var42;
-RET_LABEL41:(void)0;
+var52 = var54;
+RET_LABEL53:(void)0;
 }
 }
 {
-var43 = nitc__separate_compiler___MMethodDef___virtual_runtime_function(var40);
+var55 = nitc__separate_compiler___MMethodDef___virtual_runtime_function(var52);
 }
-var_r = var43;
-if (unlikely(varonce44==NULL)) {
-var45 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
-if (likely(varonce46!=NULL)) {
-var47 = varonce46;
+var_r = var55;
+if (unlikely(varonce56==NULL)) {
+var57 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
+if (likely(varonce58!=NULL)) {
+var59 = varonce58;
 } else {
-var48 = " ";
-var49 = core__flat___NativeString___to_s_full(var48, 1l, 1l);
-var47 = var49;
-varonce46 = var47;
+var60 = " ";
+var62 = (val*)(1l<<2|1);
+var63 = (val*)(1l<<2|1);
+var64 = (val*)((long)(0)<<2|3);
+var65 = (val*)((long)(0)<<2|3);
+var61 = core__flat___CString___to_s_unsafe(var60, var62, var63, var64, var65);
+var59 = var61;
+varonce58 = var59;
 }
-((struct instance_core__NativeArray*)var45)->values[1]=var47;
-if (likely(varonce50!=NULL)) {
-var51 = varonce50;
+((struct instance_core__NativeArray*)var57)->values[1]=var59;
+if (likely(varonce66!=NULL)) {
+var67 = varonce66;
 } else {
-var52 = " __attribute__((weak));";
-var53 = core__flat___NativeString___to_s_full(var52, 23l, 23l);
-var51 = var53;
-varonce50 = var51;
+var68 = " __attribute__((weak));";
+var70 = (val*)(23l<<2|1);
+var71 = (val*)(23l<<2|1);
+var72 = (val*)((long)(0)<<2|3);
+var73 = (val*)((long)(0)<<2|3);
+var69 = core__flat___CString___to_s_unsafe(var68, var70, var71, var72, var73);
+var67 = var69;
+varonce66 = var67;
 }
-((struct instance_core__NativeArray*)var45)->values[4]=var51;
+((struct instance_core__NativeArray*)var57)->values[4]=var67;
 } else {
-var45 = varonce44;
-varonce44 = NULL;
+var57 = varonce56;
+varonce56 = NULL;
 }
 {
-var54 = nitc___nitc__SeparateRuntimeFunction___c_ret(var_r);
+var74 = nitc___nitc__SeparateRuntimeFunction___c_ret(var_r);
 }
-((struct instance_core__NativeArray*)var45)->values[0]=var54;
-((struct instance_core__NativeArray*)var45)->values[2]=var_n2;
+((struct instance_core__NativeArray*)var57)->values[0]=var74;
+((struct instance_core__NativeArray*)var57)->values[2]=var_n2;
 {
-var55 = nitc___nitc__SeparateRuntimeFunction___c_sig(var_r);
+var75 = nitc___nitc__SeparateRuntimeFunction___c_sig(var_r);
 }
-((struct instance_core__NativeArray*)var45)->values[3]=var55;
+((struct instance_core__NativeArray*)var57)->values[3]=var75;
 {
-var56 = ((val*(*)(val* self))(var45->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var45); /* native_to_s on <var45:NativeArray[String]>*/
+var76 = ((val*(*)(val* self))(var57->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var57); /* native_to_s on <var57:NativeArray[String]>*/
 }
-varonce44 = var45;
+varonce56 = var57;
 {
-nitc___nitc__AbstractCompiler___provide_declaration(self, var_n2, var56); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
+nitc___nitc__AbstractCompiler___provide_declaration(self, var_n2, var76); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
 }
 } else {
 }
 RET_LABEL:;
 }
-/* method separate_compiler#SeparateCompiler#is_monomorphic for (self: SeparateCompiler, MMethod): nullable MMethodDef */
+/* method separate_compiler$SeparateCompiler$is_monomorphic for (self: SeparateCompiler, MMethod): nullable MMethodDef */
 val* nitc___nitc__SeparateCompiler___is_monomorphic(val* self, val* p0) {
 val* var /* : nullable MMethodDef */;
 val* var_m /* var m: MMethod */;
@@ -8478,7 +9627,7 @@ short int var38 /* : Bool */;
 short int var39 /* : Bool */;
 var_m = p0;
 {
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
+{ /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
 var3 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
 var1 = var3;
 RET_LABEL2:(void)0;
@@ -8491,10 +9640,10 @@ var4 = 1; /* is null */
 var4 = 0; /* arg is null but recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
+{ /* Inline kernel$Object$== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
 var_other = ((val*)NULL);
 {
-{ /* Inline kernel#Object#is_same_instance (var_rta,var_other) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline kernel$Object$is_same_instance (var_rta,var_other) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var9 = var_rta == var_other;
 var7 = var9;
 goto RET_LABEL8;
@@ -8509,11 +9658,14 @@ var4 = var5;
 }
 if (var4){
 {
-{ /* Inline model#MProperty#mpropdefs (var_m) on <var_m:MMethod> */
+{ /* Inline model$MProperty$mpropdefs (var_m) on <var_m:MMethod> */
 var12 = var_m->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <var_m:MMethod> */
 if (unlikely(var12 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1981);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2092);
 fatal_exit(1);
 }
 var10 = var12;
@@ -8521,14 +9673,14 @@ RET_LABEL11:(void)0;
 }
 }
 {
-{ /* Inline array#AbstractArrayRead#length (var10) on <var10:Array[MPropDef](Array[MMethodDef])> */
+{ /* Inline array$AbstractArrayRead$length (var10) on <var10:Array[MPropDef](Array[MMethodDef])> */
 var15 = var10->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var10:Array[MPropDef](Array[MMethodDef])> */
 var13 = var15;
 RET_LABEL14:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#== (var13,1l) on <var13:Int> */
+{ /* Inline kernel$Int$== (var13,1l) on <var13:Int> */
 var18 = var13 == 1l;
 var16 = var18;
 goto RET_LABEL17;
@@ -8537,11 +9689,14 @@ RET_LABEL17:(void)0;
 }
 if (var16){
 {
-{ /* Inline model#MProperty#mpropdefs (var_m) on <var_m:MMethod> */
+{ /* Inline model$MProperty$mpropdefs (var_m) on <var_m:MMethod> */
 var21 = var_m->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <var_m:MMethod> */
 if (unlikely(var21 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1981);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2092);
 fatal_exit(1);
 }
 var19 = var21;
@@ -8560,11 +9715,14 @@ goto RET_LABEL;
 } else {
 var_res = ((val*)NULL);
 {
-{ /* Inline model#MProperty#mpropdefs (var_m) on <var_m:MMethod> */
+{ /* Inline model$MProperty$mpropdefs (var_m) on <var_m:MMethod> */
 var25 = var_m->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <var_m:MMethod> */
 if (unlikely(var25 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1981);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2092);
 fatal_exit(1);
 }
 var23 = var25;
@@ -8589,9 +9747,12 @@ var29 = ((val*(*)(val* self))((((long)var_27&3)?class_info[((long)var_27&3)]:var
 }
 var_md = var29;
 {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
+{ /* Inline rapid_type_analysis$RapidTypeAnalysis$live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 var32 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
 if (unlikely(var32 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 79);
 fatal_exit(1);
@@ -8610,7 +9771,7 @@ var34 = 0; /* is null */
 var34 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable MMethodDef> */
+{ /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable MMethodDef> */
 var_other37 = ((val*)NULL);
 {
 var38 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other37); /* == on <var_res:nullable MMethodDef(MMethodDef)>*/
@@ -8644,964 +9805,3 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: SeparateCompiler, MType) */
-void nitc___nitc__SeparateCompiler___compile_type_to_c(val* self, val* p0) {
-val* var_mtype /* var mtype: MType */;
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-int cltype;
-int idtype;
-short int var_ /* var : Bool */;
-val* var4 /* : nullable RapidTypeAnalysis */;
-val* var6 /* : nullable RapidTypeAnalysis */;
-val* var7 /* : HashSet[MClassType] */;
-val* var9 /* : HashSet[MClassType] */;
-short int var10 /* : Bool */;
-short int var_is_live /* var is_live: Bool */;
-val* var11 /* : nullable RapidTypeAnalysis */;
-val* var13 /* : nullable RapidTypeAnalysis */;
-val* var14 /* : HashSet[MType] */;
-val* var16 /* : HashSet[MType] */;
-short int var17 /* : Bool */;
-short int var_is_cast_live /* var is_cast_live: Bool */;
-val* var18 /* : String */;
-val* var_c_name /* var c_name: String */;
-val* var19 /* : SeparateCompilerVisitor */;
-val* var_v /* var v: SeparateCompilerVisitor */;
-val* var20 /* : NativeArray[String] */;
-static val* varonce;
-static val* varonce21;
-val* var22 /* : String */;
-char* var23 /* : NativeString */;
-val* var24 /* : String */;
-static val* varonce25;
-val* var26 /* : String */;
-char* var27 /* : NativeString */;
-val* var28 /* : String */;
-val* var29 /* : String */;
-val* var30 /* : String */;
-val* var32 /* : NativeArray[String] */;
-static val* varonce31;
-static val* varonce33;
-val* var34 /* : String */;
-char* var35 /* : NativeString */;
-val* var36 /* : String */;
-val* var37 /* : String */;
-val* var39 /* : NativeArray[String] */;
-static val* varonce38;
-static val* varonce40;
-val* var41 /* : String */;
-char* var42 /* : NativeString */;
-val* var43 /* : String */;
-static val* varonce44;
-val* var45 /* : String */;
-char* var46 /* : NativeString */;
-val* var47 /* : String */;
-val* var48 /* : String */;
-val* var50 /* : NativeArray[String] */;
-static val* varonce49;
-static val* varonce51;
-val* var52 /* : String */;
-char* var53 /* : NativeString */;
-val* var54 /* : String */;
-static val* varonce55;
-val* var56 /* : String */;
-char* var57 /* : NativeString */;
-val* var58 /* : String */;
-val* var59 /* : String */;
-val* var61 /* : NativeArray[String] */;
-static val* varonce60;
-static val* varonce62;
-val* var63 /* : String */;
-char* var64 /* : NativeString */;
-val* var65 /* : String */;
-val* var66 /* : Map[MType, Int] */;
-val* var68 /* : Map[MType, Int] */;
-val* var69 /* : nullable Object */;
-val* var70 /* : String */;
-long var71 /* : Int */;
-val* var72 /* : String */;
-static val* varonce73;
-val* var74 /* : String */;
-char* var75 /* : NativeString */;
-val* var76 /* : String */;
-val* var78 /* : NativeArray[String] */;
-static val* varonce77;
-static val* varonce79;
-val* var80 /* : String */;
-char* var81 /* : NativeString */;
-val* var82 /* : String */;
-static val* varonce83;
-val* var84 /* : String */;
-char* var85 /* : NativeString */;
-val* var86 /* : String */;
-val* var87 /* : String */;
-val* var88 /* : String */;
-val* var90 /* : NativeArray[String] */;
-static val* varonce89;
-static val* varonce91;
-val* var92 /* : String */;
-char* var93 /* : NativeString */;
-val* var94 /* : String */;
-val* var95 /* : Map[MType, Int] */;
-val* var97 /* : Map[MType, Int] */;
-val* var98 /* : nullable Object */;
-val* var99 /* : String */;
-long var100 /* : Int */;
-val* var101 /* : String */;
-static val* varonce102;
-val* var103 /* : String */;
-char* var104 /* : NativeString */;
-val* var105 /* : String */;
-short int var106 /* : Bool */;
-int cltype107;
-int idtype108;
-static val* varonce109;
-val* var110 /* : String */;
-char* var111 /* : NativeString */;
-val* var112 /* : String */;
-static val* varonce113;
-val* var114 /* : String */;
-char* var115 /* : NativeString */;
-val* var116 /* : String */;
-val* var117 /* : MType */;
-val* var_mclass_type /* var mclass_type: MType */;
-short int var118 /* : Bool */;
-int cltype119;
-int idtype120;
-val* var121 /* : Map[MClassType, Array[nullable MType]] */;
-val* var123 /* : Map[MClassType, Array[nullable MType]] */;
-val* var124 /* : nullable Object */;
-short int var125 /* : Bool */;
-static val* varonce126;
-val* var127 /* : String */;
-char* var128 /* : NativeString */;
-val* var129 /* : String */;
-val* var131 /* : NativeArray[String] */;
-static val* varonce130;
-static val* varonce132;
-val* var133 /* : String */;
-char* var134 /* : NativeString */;
-val* var135 /* : String */;
-val* var136 /* : String */;
-val* var138 /* : NativeArray[String] */;
-static val* varonce137;
-static val* varonce139;
-val* var140 /* : String */;
-char* var141 /* : NativeString */;
-val* var142 /* : String */;
-static val* varonce143;
-val* var144 /* : String */;
-char* var145 /* : NativeString */;
-val* var146 /* : String */;
-val* var147 /* : String */;
-static val* varonce148;
-val* var149 /* : String */;
-char* var150 /* : NativeString */;
-val* var151 /* : String */;
-val* var153 /* : NativeArray[String] */;
-static val* varonce152;
-static val* varonce154;
-val* var155 /* : String */;
-char* var156 /* : NativeString */;
-val* var157 /* : String */;
-val* var158 /* : Map[MType, Array[nullable MType]] */;
-val* var160 /* : Map[MType, Array[nullable MType]] */;
-val* var161 /* : nullable Object */;
-long var162 /* : Int */;
-long var164 /* : Int */;
-val* var165 /* : String */;
-val* var166 /* : String */;
-static val* varonce167;
-val* var168 /* : String */;
-char* var169 /* : NativeString */;
-val* var170 /* : String */;
-val* var171 /* : Map[MType, Array[nullable MType]] */;
-val* var173 /* : Map[MType, Array[nullable MType]] */;
-val* var174 /* : nullable Object */;
-val* var_175 /* var : Array[nullable MType] */;
-val* var176 /* : IndexedIterator[nullable Object] */;
-val* var_177 /* var : IndexedIterator[nullable MType] */;
-short int var178 /* : Bool */;
-val* var179 /* : nullable Object */;
-val* var_stype /* var stype: nullable MType */;
-short int var180 /* : Bool */;
-short int var181 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var183 /* : Bool */;
-short int var185 /* : Bool */;
-static val* varonce186;
-val* var187 /* : String */;
-char* var188 /* : NativeString */;
-val* var189 /* : String */;
-val* var191 /* : NativeArray[String] */;
-static val* varonce190;
-static val* varonce192;
-val* var193 /* : String */;
-char* var194 /* : NativeString */;
-val* var195 /* : String */;
-static val* varonce196;
-val* var197 /* : String */;
-char* var198 /* : NativeString */;
-val* var199 /* : String */;
-val* var200 /* : Map[MType, Int] */;
-val* var202 /* : Map[MType, Int] */;
-val* var203 /* : nullable Object */;
-val* var204 /* : String */;
-long var205 /* : Int */;
-val* var206 /* : String */;
-val* var207 /* : String */;
-static val* varonce208;
-val* var209 /* : String */;
-char* var210 /* : NativeString */;
-val* var211 /* : String */;
-static val* varonce212;
-val* var213 /* : String */;
-char* var214 /* : NativeString */;
-val* var215 /* : String */;
-static val* varonce216;
-val* var217 /* : String */;
-char* var218 /* : NativeString */;
-val* var219 /* : String */;
-var_mtype = p0;
-{
-var = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
-}
-var1 = !var;
-if (unlikely(!var1)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 708);
-fatal_exit(1);
-}
-/* <var_mtype:MType> isa MClassType */
-cltype = type_nitc__MClassType.color;
-idtype = type_nitc__MClassType.id;
-if(cltype >= var_mtype->type->table_size) {
-var3 = 0;
-} else {
-var3 = var_mtype->type->type_table[cltype] == idtype;
-}
-var_ = var3;
-if (var3){
-{
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
-var6 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
-var4 = var6;
-RET_LABEL5:(void)0;
-}
-}
-if (var4 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 709);
-fatal_exit(1);
-} else {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var4) on <var4:nullable RapidTypeAnalysis> */
-if (unlikely(var4 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
-fatal_exit(1);
-}
-var9 = var4->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <var4:nullable RapidTypeAnalysis> */
-if (unlikely(var9 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
-fatal_exit(1);
-}
-var7 = var9;
-RET_LABEL8:(void)0;
-}
-}
-{
-var10 = core___core__HashSet___core__abstract_collection__Collection__has(var7, var_mtype);
-}
-var2 = var10;
-} else {
-var2 = var_;
-}
-var_is_live = var2;
-{
-{ /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
-var13 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
-var11 = var13;
-RET_LABEL12:(void)0;
-}
-}
-if (var11 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 710);
-fatal_exit(1);
-} else {
-{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var11) on <var11:nullable RapidTypeAnalysis> */
-if (unlikely(var11 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 72);
-fatal_exit(1);
-}
-var16 = var11->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on <var11:nullable RapidTypeAnalysis> */
-if (unlikely(var16 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 72);
-fatal_exit(1);
-}
-var14 = var16;
-RET_LABEL15:(void)0;
-}
-}
-{
-var17 = core___core__HashSet___core__abstract_collection__Collection__has(var14, var_mtype);
-}
-var_is_cast_live = var17;
-{
-var18 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MType>*/
-}
-var_c_name = var18;
-var19 = NEW_nitc__SeparateCompilerVisitor(&type_nitc__SeparateCompilerVisitor);
-{
-((void(*)(val* self, val* p0))(var19->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compiler_61d]))(var19, self); /* compiler= on <var19:SeparateCompilerVisitor>*/
-}
-{
-((void(*)(val* self))(var19->class->vft[COLOR_core__kernel__Object__init]))(var19); /* init on <var19:SeparateCompilerVisitor>*/
-}
-var_v = var19;
-if (unlikely(varonce==NULL)) {
-var20 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce21!=NULL)) {
-var22 = varonce21;
-} else {
-var23 = "/* runtime type ";
-var24 = core__flat___NativeString___to_s_full(var23, 16l, 16l);
-var22 = var24;
-varonce21 = var22;
-}
-((struct instance_core__NativeArray*)var20)->values[0]=var22;
-if (likely(varonce25!=NULL)) {
-var26 = varonce25;
-} else {
-var27 = " */";
-var28 = core__flat___NativeString___to_s_full(var27, 3l, 3l);
-var26 = var28;
-varonce25 = var26;
-}
-((struct instance_core__NativeArray*)var20)->values[2]=var26;
-} else {
-var20 = varonce;
-varonce = NULL;
-}
-{
-var29 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
-}
-((struct instance_core__NativeArray*)var20)->values[1]=var29;
-{
-var30 = ((val*(*)(val* self))(var20->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var20); /* native_to_s on <var20:NativeArray[String]>*/
-}
-varonce = var20;
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var30); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-if (unlikely(varonce31==NULL)) {
-var32 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce33!=NULL)) {
-var34 = varonce33;
-} else {
-var35 = "type_";
-var36 = core__flat___NativeString___to_s_full(var35, 5l, 5l);
-var34 = var36;
-varonce33 = var34;
-}
-((struct instance_core__NativeArray*)var32)->values[0]=var34;
-} else {
-var32 = varonce31;
-varonce31 = NULL;
-}
-((struct instance_core__NativeArray*)var32)->values[1]=var_c_name;
-{
-var37 = ((val*(*)(val* self))(var32->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var32); /* native_to_s on <var32:NativeArray[String]>*/
-}
-varonce31 = var32;
-if (unlikely(varonce38==NULL)) {
-var39 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce40!=NULL)) {
-var41 = varonce40;
-} else {
-var42 = "extern const struct type type_";
-var43 = core__flat___NativeString___to_s_full(var42, 30l, 30l);
-var41 = var43;
-varonce40 = var41;
-}
-((struct instance_core__NativeArray*)var39)->values[0]=var41;
-if (likely(varonce44!=NULL)) {
-var45 = varonce44;
-} else {
-var46 = ";";
-var47 = core__flat___NativeString___to_s_full(var46, 1l, 1l);
-var45 = var47;
-varonce44 = var45;
-}
-((struct instance_core__NativeArray*)var39)->values[2]=var45;
-} else {
-var39 = varonce38;
-varonce38 = NULL;
-}
-((struct instance_core__NativeArray*)var39)->values[1]=var_c_name;
-{
-var48 = ((val*(*)(val* self))(var39->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var39); /* native_to_s on <var39:NativeArray[String]>*/
-}
-varonce38 = var39;
-{
-nitc___nitc__AbstractCompiler___provide_declaration(self, var37, var48); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
-}
-if (unlikely(varonce49==NULL)) {
-var50 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce51!=NULL)) {
-var52 = varonce51;
-} else {
-var53 = "const struct type type_";
-var54 = core__flat___NativeString___to_s_full(var53, 23l, 23l);
-var52 = var54;
-varonce51 = var52;
-}
-((struct instance_core__NativeArray*)var50)->values[0]=var52;
-if (likely(varonce55!=NULL)) {
-var56 = varonce55;
-} else {
-var57 = " = {";
-var58 = core__flat___NativeString___to_s_full(var57, 4l, 4l);
-var56 = var58;
-varonce55 = var56;
-}
-((struct instance_core__NativeArray*)var50)->values[2]=var56;
-} else {
-var50 = varonce49;
-varonce49 = NULL;
-}
-((struct instance_core__NativeArray*)var50)->values[1]=var_c_name;
-{
-var59 = ((val*(*)(val* self))(var50->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var50); /* native_to_s on <var50:NativeArray[String]>*/
-}
-varonce49 = var50;
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var59); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-if (var_is_cast_live){
-if (unlikely(varonce60==NULL)) {
-var61 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce62!=NULL)) {
-var63 = varonce62;
-} else {
-var64 = ",";
-var65 = core__flat___NativeString___to_s_full(var64, 1l, 1l);
-var63 = var65;
-varonce62 = var63;
-}
-((struct instance_core__NativeArray*)var61)->values[1]=var63;
-} else {
-var61 = varonce60;
-varonce60 = NULL;
-}
-{
-{ /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
-var68 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on <self:SeparateCompiler> */
-if (unlikely(var68 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 149);
-fatal_exit(1);
-}
-var66 = var68;
-RET_LABEL67:(void)0;
-}
-}
-{
-var69 = ((val*(*)(val* self, val* p0))((((long)var66&3)?class_info[((long)var66&3)]:var66->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var66, var_mtype); /* [] on <var66:Map[MType, Int]>*/
-}
-var71 = (long)(var69)>>2;
-var70 = core__flat___Int___core__abstract_text__Object__to_s(var71);
-((struct instance_core__NativeArray*)var61)->values[0]=var70;
-{
-var72 = ((val*(*)(val* self))(var61->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var61); /* native_to_s on <var61:NativeArray[String]>*/
-}
-varonce60 = var61;
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var72); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-} else {
-if (likely(varonce73!=NULL)) {
-var74 = varonce73;
-} else {
-var75 = "-1, /*CAST DEAD*/";
-var76 = core__flat___NativeString___to_s_full(var75, 17l, 17l);
-var74 = var76;
-varonce73 = var74;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var74); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-}
-if (unlikely(varonce77==NULL)) {
-var78 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce79!=NULL)) {
-var80 = varonce79;
-} else {
-var81 = "\"";
-var82 = core__flat___NativeString___to_s_full(var81, 1l, 1l);
-var80 = var82;
-varonce79 = var80;
-}
-((struct instance_core__NativeArray*)var78)->values[0]=var80;
-if (likely(varonce83!=NULL)) {
-var84 = varonce83;
-} else {
-var85 = "\", /* class_name_string */";
-var86 = core__flat___NativeString___to_s_full(var85, 26l, 26l);
-var84 = var86;
-varonce83 = var84;
-}
-((struct instance_core__NativeArray*)var78)->values[2]=var84;
-} else {
-var78 = varonce77;
-varonce77 = NULL;
-}
-{
-var87 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
-}
-((struct instance_core__NativeArray*)var78)->values[1]=var87;
-{
-var88 = ((val*(*)(val* self))(var78->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var78); /* native_to_s on <var78:NativeArray[String]>*/
-}
-varonce77 = var78;
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var88); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-if (var_is_cast_live){
-if (unlikely(varonce89==NULL)) {
-var90 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce91!=NULL)) {
-var92 = varonce91;
-} else {
-var93 = ",";
-var94 = core__flat___NativeString___to_s_full(var93, 1l, 1l);
-var92 = var94;
-varonce91 = var92;
-}
-((struct instance_core__NativeArray*)var90)->values[1]=var92;
-} else {
-var90 = varonce89;
-varonce89 = NULL;
-}
-{
-{ /* Inline separate_compiler#SeparateCompiler#type_colors (self) on <self:SeparateCompiler> */
-var97 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors].val; /* _type_colors on <self:SeparateCompiler> */
-if (unlikely(var97 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 150);
-fatal_exit(1);
-}
-var95 = var97;
-RET_LABEL96:(void)0;
-}
-}
-{
-var98 = ((val*(*)(val* self, val* p0))((((long)var95&3)?class_info[((long)var95&3)]:var95->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var95, var_mtype); /* [] on <var95:Map[MType, Int]>*/
-}
-var100 = (long)(var98)>>2;
-var99 = core__flat___Int___core__abstract_text__Object__to_s(var100);
-((struct instance_core__NativeArray*)var90)->values[0]=var99;
-{
-var101 = ((val*(*)(val* self))(var90->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var90); /* native_to_s on <var90:NativeArray[String]>*/
-}
-varonce89 = var90;
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var101); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-} else {
-if (likely(varonce102!=NULL)) {
-var103 = varonce102;
-} else {
-var104 = "-1, /*CAST DEAD*/";
-var105 = core__flat___NativeString___to_s_full(var104, 17l, 17l);
-var103 = var105;
-varonce102 = var103;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var103); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-}
-/* <var_mtype:MType> isa MNullableType */
-cltype107 = type_nitc__MNullableType.color;
-idtype108 = type_nitc__MNullableType.id;
-if(cltype107 >= var_mtype->type->table_size) {
-var106 = 0;
-} else {
-var106 = var_mtype->type->type_table[cltype107] == idtype108;
-}
-if (var106){
-if (likely(varonce109!=NULL)) {
-var110 = varonce109;
-} else {
-var111 = "1,";
-var112 = core__flat___NativeString___to_s_full(var111, 2l, 2l);
-var110 = var112;
-varonce109 = var110;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var110); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-} else {
-if (likely(varonce113!=NULL)) {
-var114 = varonce113;
-} else {
-var115 = "0,";
-var116 = core__flat___NativeString___to_s_full(var115, 2l, 2l);
-var114 = var116;
-varonce113 = var114;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var114); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-}
-if (var_is_live){
-{
-var117 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
-}
-var_mclass_type = var117;
-/* <var_mclass_type:MType> isa MClassType */
-cltype119 = type_nitc__MClassType.color;
-idtype120 = type_nitc__MClassType.id;
-if(cltype119 >= var_mclass_type->type->table_size) {
-var118 = 0;
-} else {
-var118 = var_mclass_type->type->type_table[cltype119] == idtype120;
-}
-if (unlikely(!var118)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 748);
-fatal_exit(1);
-}
-{
-{ /* Inline separate_compiler#SeparateCompiler#resolution_tables (self) on <self:SeparateCompiler> */
-var123 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___resolution_tables].val; /* _resolution_tables on <self:SeparateCompiler> */
-if (unlikely(var123 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1066);
-fatal_exit(1);
-}
-var121 = var123;
-RET_LABEL122:(void)0;
-}
-}
-{
-var124 = ((val*(*)(val* self, val* p0))((((long)var121&3)?class_info[((long)var121&3)]:var121->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var121, var_mclass_type); /* [] on <var121:Map[MClassType, Array[nullable MType]]>*/
-}
-{
-var125 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var124);
-}
-if (var125){
-if (likely(varonce126!=NULL)) {
-var127 = varonce126;
-} else {
-var128 = "NULL, /*NO RESOLUTIONS*/";
-var129 = core__flat___NativeString___to_s_full(var128, 24l, 24l);
-var127 = var129;
-varonce126 = var127;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var127); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-} else {
-{
-nitc___nitc__SeparateCompiler___compile_type_resolution_table(self, var_mtype); /* Direct call separate_compiler#SeparateCompiler#compile_type_resolution_table on <self:SeparateCompiler>*/
-}
-if (unlikely(varonce130==NULL)) {
-var131 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce132!=NULL)) {
-var133 = varonce132;
-} else {
-var134 = "resolution_table_";
-var135 = core__flat___NativeString___to_s_full(var134, 17l, 17l);
-var133 = var135;
-varonce132 = var133;
-}
-((struct instance_core__NativeArray*)var131)->values[0]=var133;
-} else {
-var131 = varonce130;
-varonce130 = NULL;
-}
-((struct instance_core__NativeArray*)var131)->values[1]=var_c_name;
-{
-var136 = ((val*(*)(val* self))(var131->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var131); /* native_to_s on <var131:NativeArray[String]>*/
-}
-varonce130 = var131;
-{
-nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var136); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
-}
-if (unlikely(varonce137==NULL)) {
-var138 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce139!=NULL)) {
-var140 = varonce139;
-} else {
-var141 = "&resolution_table_";
-var142 = core__flat___NativeString___to_s_full(var141, 18l, 18l);
-var140 = var142;
-varonce139 = var140;
-}
-((struct instance_core__NativeArray*)var138)->values[0]=var140;
-if (likely(varonce143!=NULL)) {
-var144 = varonce143;
-} else {
-var145 = ",";
-var146 = core__flat___NativeString___to_s_full(var145, 1l, 1l);
-var144 = var146;
-varonce143 = var144;
-}
-((struct instance_core__NativeArray*)var138)->values[2]=var144;
-} else {
-var138 = varonce137;
-varonce137 = NULL;
-}
-((struct instance_core__NativeArray*)var138)->values[1]=var_c_name;
-{
-var147 = ((val*(*)(val* self))(var138->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var138); /* native_to_s on <var138:NativeArray[String]>*/
-}
-varonce137 = var138;
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var147); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-}
-} else {
-if (likely(varonce148!=NULL)) {
-var149 = varonce148;
-} else {
-var150 = "NULL, /*DEAD*/";
-var151 = core__flat___NativeString___to_s_full(var150, 14l, 14l);
-var149 = var151;
-varonce148 = var149;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var149); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-}
-if (var_is_live){
-if (unlikely(varonce152==NULL)) {
-var153 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce154!=NULL)) {
-var155 = varonce154;
-} else {
-var156 = ",";
-var157 = core__flat___NativeString___to_s_full(var156, 1l, 1l);
-var155 = var157;
-varonce154 = var155;
-}
-((struct instance_core__NativeArray*)var153)->values[1]=var155;
-} else {
-var153 = varonce152;
-varonce152 = NULL;
-}
-{
-{ /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
-var160 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables].val; /* _type_tables on <self:SeparateCompiler> */
-if (unlikely(var160 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1065);
-fatal_exit(1);
-}
-var158 = var160;
-RET_LABEL159:(void)0;
-}
-}
-{
-var161 = ((val*(*)(val* self, val* p0))((((long)var158&3)?class_info[((long)var158&3)]:var158->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var158, var_mtype); /* [] on <var158:Map[MType, Array[nullable MType]]>*/
-}
-{
-{ /* Inline array#AbstractArrayRead#length (var161) on <var161:nullable Object(Array[nullable MType])> */
-var164 = var161->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var161:nullable Object(Array[nullable MType])> */
-var162 = var164;
-RET_LABEL163:(void)0;
-}
-}
-var165 = core__flat___Int___core__abstract_text__Object__to_s(var162);
-((struct instance_core__NativeArray*)var153)->values[0]=var165;
-{
-var166 = ((val*(*)(val* self))(var153->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var153); /* native_to_s on <var153:NativeArray[String]>*/
-}
-varonce152 = var153;
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var166); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-if (likely(varonce167!=NULL)) {
-var168 = varonce167;
-} else {
-var169 = "{";
-var170 = core__flat___NativeString___to_s_full(var169, 1l, 1l);
-var168 = var170;
-varonce167 = var168;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var168); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-{
-{ /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
-var173 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables].val; /* _type_tables on <self:SeparateCompiler> */
-if (unlikely(var173 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1065);
-fatal_exit(1);
-}
-var171 = var173;
-RET_LABEL172:(void)0;
-}
-}
-{
-var174 = ((val*(*)(val* self, val* p0))((((long)var171&3)?class_info[((long)var171&3)]:var171->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var171, var_mtype); /* [] on <var171:Map[MType, Array[nullable MType]]>*/
-}
-var_175 = var174;
-{
-var176 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_175);
-}
-var_177 = var176;
-for(;;) {
-{
-var178 = ((short int(*)(val* self))((((long)var_177&3)?class_info[((long)var_177&3)]:var_177->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_177); /* is_ok on <var_177:IndexedIterator[nullable MType]>*/
-}
-if (var178){
-} else {
-goto BREAK_label;
-}
-{
-var179 = ((val*(*)(val* self))((((long)var_177&3)?class_info[((long)var_177&3)]:var_177->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_177); /* item on <var_177:IndexedIterator[nullable MType]>*/
-}
-var_stype = var179;
-if (var_stype == NULL) {
-var180 = 1; /* is null */
-} else {
-var180 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_stype,((val*)NULL)) on <var_stype:nullable MType> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_stype,var_other) on <var_stype:nullable MType(MType)> */
-var185 = var_stype == var_other;
-var183 = var185;
-goto RET_LABEL184;
-RET_LABEL184:(void)0;
-}
-}
-var181 = var183;
-goto RET_LABEL182;
-RET_LABEL182:(void)0;
-}
-var180 = var181;
-}
-if (var180){
-if (likely(varonce186!=NULL)) {
-var187 = varonce186;
-} else {
-var188 = "-1, /* empty */";
-var189 = core__flat___NativeString___to_s_full(var188, 15l, 15l);
-var187 = var189;
-varonce186 = var187;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var187); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-} else {
-if (unlikely(varonce190==NULL)) {
-var191 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
-if (likely(varonce192!=NULL)) {
-var193 = varonce192;
-} else {
-var194 = ", /* ";
-var195 = core__flat___NativeString___to_s_full(var194, 5l, 5l);
-var193 = var195;
-varonce192 = var193;
-}
-((struct instance_core__NativeArray*)var191)->values[1]=var193;
-if (likely(varonce196!=NULL)) {
-var197 = varonce196;
-} else {
-var198 = " */";
-var199 = core__flat___NativeString___to_s_full(var198, 3l, 3l);
-var197 = var199;
-varonce196 = var197;
-}
-((struct instance_core__NativeArray*)var191)->values[3]=var197;
-} else {
-var191 = varonce190;
-varonce190 = NULL;
-}
-{
-{ /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
-var202 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on <self:SeparateCompiler> */
-if (unlikely(var202 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 149);
-fatal_exit(1);
-}
-var200 = var202;
-RET_LABEL201:(void)0;
-}
-}
-{
-var203 = ((val*(*)(val* self, val* p0))((((long)var200&3)?class_info[((long)var200&3)]:var200->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var200, var_stype); /* [] on <var200:Map[MType, Int]>*/
-}
-var205 = (long)(var203)>>2;
-var204 = core__flat___Int___core__abstract_text__Object__to_s(var205);
-((struct instance_core__NativeArray*)var191)->values[0]=var204;
-{
-var206 = ((val*(*)(val* self))(var_stype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_stype); /* to_s on <var_stype:nullable MType(MType)>*/
-}
-((struct instance_core__NativeArray*)var191)->values[2]=var206;
-{
-var207 = ((val*(*)(val* self))(var191->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var191); /* native_to_s on <var191:NativeArray[String]>*/
-}
-varonce190 = var191;
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var207); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-}
-{
-((void(*)(val* self))((((long)var_177&3)?class_info[((long)var_177&3)]:var_177->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_177); /* next on <var_177:IndexedIterator[nullable MType]>*/
-}
-}
-BREAK_label: (void)0;
-{
-((void(*)(val* self))((((long)var_177&3)?class_info[((long)var_177&3)]:var_177->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_177); /* finish on <var_177:IndexedIterator[nullable MType]>*/
-}
-if (likely(varonce208!=NULL)) {
-var209 = varonce208;
-} else {
-var210 = "},";
-var211 = core__flat___NativeString___to_s_full(var210, 2l, 2l);
-var209 = var211;
-varonce208 = var209;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var209); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-} else {
-if (likely(varonce212!=NULL)) {
-var213 = varonce212;
-} else {
-var214 = "-1, {}, /*DEAD TYPE*/";
-var215 = core__flat___NativeString___to_s_full(var214, 21l, 21l);
-var213 = var215;
-varonce212 = var213;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var213); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-}
-if (likely(varonce216!=NULL)) {
-var217 = varonce216;
-} else {
-var218 = "};";
-var219 = core__flat___NativeString___to_s_full(var218, 2l, 2l);
-var217 = var219;
-varonce216 = var217;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var217); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
-}
-RET_LABEL:;
-}